android 如何使用代码实现嵌套布局

来源:互联网 发布:laura marling知乎 编辑:程序博客网 时间:2024/05/03 03:18

android 如何使用代码实现嵌套布局。

就是实现这样的布局。XML中是这么写的
<LinearLayout android:layout_width="fill_parent"  android:id="@+id/linearLayout" android:layout_height="fill_parent"  android:orientation="horizontal" android:paddingTop="50dp">    <LinearLayout android:layout_width="120dp"   android:layout_height="fill_parent" android:orientation="vertical">      <ListView android:id="@+id/dishTypeList" android:background="#C6E2FF"    android:layout_width="120dp" android:layout_height="380dp"    android:headerDividersEnabled="true" android:cacheColorHint="#00000000" />   <LinearLayout android:layout_width="fill_parent"    android:layout_height="50dp" android:orientation="horizontal">    <Button android:id="@+id/scollDown" android:layout_width="60dp"     android:layout_height="wrap_content" android:text="向下" />    <Button android:id="@+id/scollUp" android:layout_width="60dp"     android:layout_height="wrap_content" android:text="向上" />        </LinearLayout>     </LinearLayout>

请问这段XML,在android中用JAVA代码如何实现。!
2011-2-25 13:11
最佳答案
你的问题应该是要动态生成空间吧。下面的答案可以参考下。首先要却这个界面的布局,是AbsoluteLayout,RelativeLayout还是其他,然后就可以再里面添加控件了:
 public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//确定界面的布局AbsoluteLayout abslayout=new AbsoluteLayout (this);setContentView(abslayout);//创建一个button按钮Button btn1 = new Button(this);btn1.setText(”this is a button”);btn1.setId(1);//确定这个控件的大小和位置AbsoluteLayout.LayoutParams lp1 =new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT,0,100);abslayout.addView(btn1, lp1 );}一个界面可以布置一个布局,可以多个布局一起设计:public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//设置界面的布局RelativeLayout relativeLayout = new RelativeLayout(this);setContentView(relativeLayout);//添加一个AbsoluteLayout子布局,并给这个布局添加一个buttonAbsoluteLayout abslayout=new AbsoluteLayout (this);abslayout.setId(11);Button btn1 = new Button(this);btn1.setText(”this is a abslayout button”);btn1.setId(1);AbsoluteLayout.LayoutParams lp0 = new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT,100,0);abslayout.addView(btn1, lp0 );//将这个子布局添加到主布局中RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP);lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);relativeLayout.addView(abslayout ,lp1);//再添加一个子布局RelativeLayout relativeLayout1 = new RelativeLayout(this);Button btn2 = new Button(this);btn2.setText(”this is a relativeLayout1 button”);btn2.setId(2);RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);lp2.addRule(RelativeLayout.ALIGN_PARENT_TOP);lp2.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);relativeLayout1.addView(btn2 ,lp2);//将这个布局添加到主布局中RelativeLayout.LayoutParams lp11 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);lp11.addRule(RelativeLayout.BELOW ,11);relativeLayout.addView(relativeLayout1 ,lp11);}


原创粉丝点击