如何在Android中将屏幕拆分为两部分?

时间:2011-09-06 06:17:11

标签: java android split

我正在尝试将1个Button和1个listviews放入我的布局中。问题是。第一个Button可以有几个项目(0到5),第二个listview可以有1个listview,这取决于每个Button Click.i不知道如何拆分屏幕? 我的图片,SplitScreen

2 个答案:

答案 0 :(得分:0)

使用两个具有高度fill_parent的LinearLayout,方向应该是垂直的。宽度应根据您的要求由您定义。希望这可以帮到你。

答案 1 :(得分:0)

使用android:layout_weight设置元素的比例。

编辑:我附上了您需要的基本布局,它只包含拆分的UI。

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="horizontal"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <TableLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/tableLayout1"
        android:layout_weight="2" >
        <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
            <TextView android:text="Mobilizitaion" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
            <Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Spinner>
        </TableRow>
        <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">
            <TextView android:text="Main" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
            <Spinner android:id="@+id/spinner2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Spinner>
        </TableRow>
        <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content">
            <TextView android:text="Services" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
            <Spinner android:id="@+id/spinner3" android:layout_width="wrap_content" android:layout_height="wrap_content"></Spinner>
        </TableRow>
        <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content">
            <TextView android:text="Etc" android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
            <Spinner android:id="@+id/spinner4" android:layout_width="wrap_content" android:layout_height="wrap_content"></Spinner>
        </TableRow>
    </TableLayout>
    <LinearLayout
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_weight="1" >
    </LinearLayout>
</LinearLayout>

当视图创建时,只有列表可见,点击其中一个列表项后,屏幕比例设置为1:2。

这是xml:

<FrameLayout
            android:id="@+id/fragment_list"
            android:layout_weight="0"
            android:layout_width="fill_parent"
            android:layout_height="match_parent" />  
    <FrameLayout 
        android:id="@+id/framelayout_for_right_fragment"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="0" />

这是设置片段比例的java代码。

final FrameLayout leftFragment = (FrameLayout) findViewById(R.id.fragment_list);
        leftFragment.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 2));
        final FrameLayout rightFragment = (FrameLayout) findViewById(R.id.framelayout_for_right_fragment);
        rightFragment.setAnimation(AnimationHelper.inFromRight());
        rightFragment.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1));