您的位置:首页 > 其它

LayParames动态创建控件和控制相对布局的展示

2016-06-12 16:37 239 查看
对于动态创建控件一直很抵触的我,今天尝试着扫下我的知识盲点,之前一直是用有道云笔记记录,最近比较依赖csdn尝试着记录一下。

需求:1单纯的实现动态创建布局,2动态控制代码创建的View的显示位置,3,实现类似标签的效果。

我要根据接口返回的数据进行多个View的展示,但是有个问题就是这个数据的个数是不确定的,而且要控制布局的位置,之前本人的做法是码布局,创建足够多的VIew后再在代码里面将这些控件放在一个集合中,在获取数据的时候动态的遍历出数据的大小的同时从集合中取出view用来填充数据。

1,动态创建布局+控制位置:

2,标签效果

public class MainActivity extends Activity {

private LinearLayout rlayout, rlayout2;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        rlayout = (LinearLayout) findViewById(R.id.rlayout);

        rlayout2 = (LinearLayout) findViewById(R.id.rlayout2);

        for(int i = 0; i<20; i++){

            if(i%2!=0) {

                rlayout.addView(GetTextView(MainActivity.this, String.valueOf(i),R.color.colorAccent));

            }else{

                rlayout2.addView(GetTextView(MainActivity.this, String.valueOf(i),R.color.aa));

            }

        }

    }

    //宽 高 左 上 右 下

    public TextView GetTextView(Context context, String str,int color){

        TextView textView = new TextView(context);

        textView.setText(str);

        textView.setBackgroundResource(color);

        textView.setTextColor(Color.BLACK);//文字颜色

        textView.setTextSize(18);//文字大小

        textView.setHeight(60);

        return textView;

    }

}

布局:

 <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

<LinearLayout

    android:id="@+id/rlayout"

    android:layout_width="0dp"

    android:layout_height="match_parent"

    android:layout_weight="1"

    android:orientation="vertical">

</LinearLayout>

    <LinearLayout

    android:id="@+id/rlayout2"

        android:layout_toRightOf="@id/rlayout"

        android:layout_weight="1"

    android:layout_width="0dp"

    android:layout_height="match_parent"

    android:orientation="vertical">

</LinearLayout>

</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: