Android:自定义流布局



我想在安卓中制作这种标签菜单。动态填充布局并与中心对齐。
我该怎么做?

使用@Dory推荐的库进行编辑

<FlowLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:f="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    f:debugDraw="false"
    f:weightDefault="0"
    f:layoutDirection="ltr"
    android:gravity="center"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="6dip"
    android:paddingTop="6dip"
    android:paddingRight="12dip"
    android:paddingBottom="12dip"
    android:background="@android:color/black"
    android:id="@+id/l_flow"/>

   <Button xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginBottom="3dp"/>
一个 xml 文件中

的流布局 按钮位于另一个 xml 文件中。我正在膨胀按钮然后fLayout.addView(按钮);

我得到的是视图之间的顶部和底部填充高于预期

最后我在这个库的帮助下做到了。我只使用了类 FlowLayout 和 attr.xml我的主.xml看起来像这样:

    <com.example.FlowTest.FlowLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/flow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:background="@android:color/white"/>

我的项目布局如下所示:

<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"  
    android:layout_gravity="center_horizontal"
    android:padding="5dp"/>

在我的活动的onCreate方法中:

LayoutInflater mInflater = LayoutInflater.from(this);
    mFlowLayout = (FlowLayout) findViewById(R.id.flow);
    String [] names = {"goods", "shops", "cars", "washing machine","blablabla","clothes","books"};
    for(int i = 0; i<names.length;i++){
        Button b = (Button)mInflater.inflate(R.layout.item_flow,mFlowLayout, false);
        b.setText(names[i]);
        mFlowLayout.addView(b);
    }

看看在这里,您可以使用此库

编辑:

中提供了属性,您可以在其中设置horizontalvertical Flow Layout间距。请参阅以下示例 xml :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    
xmlns:f="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">   
    <FlowLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    f:horizontalSpacing="5dp"
    f:verticalSpacing="5dp" />  
</RelativeLayout>       

快乐的编码:)

相关内容

  • 没有找到相关文章

最新更新