如何在代码中动态添加布局以及相关的控件
2015-04-13 16:32
537 查看
最近碰到这么个需求:要在代码中动态添加布局,这个布局的个数是由后台给出的数据决定的,而且要结合xml中布局文件,一起构成总布局。不知道你们听懂没,反正就是这样的,要在代码中根据数据的个数生成布局文件添加插入在xml已有布局的顶端。
上面就是需求。然后自己写了个Demo,解决了这个问题。
假定xml布局文件如下:
这里给出的是一个相对布局,相对布局上边只有一个TextView控件,显示文字"哈哈",然后自己需要在代码中在该控件上边动态添加布局文件.自己首先试了下,一直添加不了在顶端,只能在该控件边。
想了个法子,修改该布局文件:
添加一个空的线性布局文件,设置方向为垂直向下,然后设置TextView控件显示在他下面,接下来我们只需要往ll_tdw的线性布局文件添加任何东西即可。
这样就实现了效果。
上面就是需求。然后自己写了个Demo,解决了这个问题。
假定xml布局文件如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/ll_layout" > <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="哈哈" /> </RelativeLayout>
这里给出的是一个相对布局,相对布局上边只有一个TextView控件,显示文字"哈哈",然后自己需要在代码中在该控件上边动态添加布局文件.自己首先试了下,一直添加不了在顶端,只能在该控件边。
想了个法子,修改该布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/ll_layout" > <LinearLayout android:id="@+id/ll_tdw" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" /> <TextView android:id="@+id/tv" android:layout_below="@+id/ll_tdw" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="哈哈" /> </RelativeLayout>
添加一个空的线性布局文件,设置方向为垂直向下,然后设置TextView控件显示在他下面,接下来我们只需要往ll_tdw的线性布局文件添加任何东西即可。
package com.example.linealayout; import android.app.Activity; import android.os.Bundle; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends Activity { private LinearLayout ll_tdw; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ll_tdw = (LinearLayout) findViewById(R.id.ll_tdw); for(int i=0;i<3;i++){ LinearLayout ll = new LinearLayout(MainActivity.this); TextView text = new TextView(MainActivity.this); text.setText("桃花"+i); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); ll.setLayoutParams(params); ll.addView(text); ll_tdw.setOrientation(LinearLayout.VERTICAL); ll_tdw.addView(ll); } } }
这样就实现了效果。
相关文章推荐
- New UI-Java代码动态添加控件或xml布局
- Android中如何在代码中动态设置控件的高度以及宽度
- android在java代码中动态添加组件及相关布局方法(LayoutParams)
- Android中如何在“自定义布局”中“动态”添加控件
- 如何用代码动态添加控件
- TextView 控件设置以及动态给布局添加控件
- 如何在代码中动态添加按钮控件
- 如何在代码中动态添加按钮控件
- (Android开发)在已有布局中动态添加控件
- 动态的给某个控件添加JS事件代码
- 动态添加综合布局---动态添加控件及将某XML动态加入到Activity显示(续)
- 如何动态加载控件以及插件编程思想(C#)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 如何动态加载控件以及插件编程思想(C#)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- Android初学习 - 在Java code(布局容器)中动态添加控件
- ViewPager中代码动态的添加小圆点作为指示器indicator,以及实现无限轮播
- 流式布局FlowLayout以及动态添加Item的实现
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标
- Android开发学习笔记:为动态添加的Spinner控件绑定数据源以及监听事件