【Android】FlexboxLayout实践

来源:互联网 发布:搞笑网络剧 编辑:程序博客网 时间:2024/06/07 08:36

1.添加依赖

compile 'com.google.android:flexbox:0.2.6'

2.布局

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.naton.materialdemo.FlexLayoutActivity">    <com.google.android.flexbox.FlexboxLayout        xmlns:android="http://schemas.android.com/apk/res/android"        android:layout_width="match_parent"        android:layout_height="match_parent"        xmlns:app="http://schemas.android.com/apk/res-auto"        android:id="@+id/flexbox_layout"        app:flexWrap="wrap"        app:alignItems="center"        app:alignContent="flex_start"        app:flexDirection="row"        app:justifyContent="flex_start"        app:showDivider="beginning|middle"        >    </com.google.android.flexbox.FlexboxLayout></android.support.constraint.ConstraintLayout>

3.代码部分

package com.naton.materialdemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Gravity;import android.view.ViewGroup;import android.widget.TextView;import com.google.android.flexbox.FlexboxLayout;public class FlexLayoutActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_flex_layout);        FlexboxLayout mFlexboxLayout = (FlexboxLayout) findViewById(R.id.flexbox_layout);        // 通过代码向FlexboxLayout添加View        for (int i = 5;i<20;i++){            TextView textView = new TextView(this);            //textView.setBackgroundDrawable(getResources().getDrawable(R.drawable.progressbar_refresh));            textView.setText(i+"Label");            textView.setGravity(Gravity.CENTER);            textView.setPadding(30,0,30,0);            textView.setTextColor(getResources().getColor(R.color.text_color));            mFlexboxLayout.addView(textView);            //通过FlexboxLayout.LayoutParams 设置子元素支持的属性            /*ViewGroup.LayoutParams params = textView.getLayoutParams();            if(params instanceof FlexboxLayout.LayoutParams){                FlexboxLayout.LayoutParams layoutParams = (FlexboxLayout.LayoutParams) params;                layoutParams.setLayoutDirection(5);            }*/        }    }

}

效果图:

原创粉丝点击