如何在android中划分三个不同大小的面板?

时间:2012-03-20 20:47:47

标签: android android-layout android-sdk-2.3

我想在android上创建这样的屏幕:

enter image description here
实现这一点,我写了一些类似的代码..但我没有做我想要的。屏幕中不存在文本区域。我该怎么办 ?任何意见..提前谢谢你..

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayout123" 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:weightSum="1.0"
        android:gravity="fill">

    <LinearLayout
        android:id="@+id/linearLayout12"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top" >

     <Button android:id="@+id/button1"              
         android:layout_width="wrap_content"                                          
         android:layout_height="wrap_content"           
         android:text="Hello, I am a Button" />

        </LinearLayout>


    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="118dp"
        android:layout_height="fill_parent"
        android:layout_gravity="right"
        android:orientation="vertical" >

         <Button android:id="@+id/button2"              
         android:layout_width="wrap_content"                                          
         android:layout_height="wrap_content"           
         android:text="Hello, I am a Button" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="228dp"
        android:layout_height="fill_parent"
        android:layout_gravity="left" >

           <TextView 
                android:id="@+id/text2"              
                android:layout_width="wrap_content"             
                android:layout_height="wrap_content"              
                android:text="Hello, I am a TextView" />

           </LinearLayout>


    </LinearLayout>

2 个答案:

答案 0 :(得分:6)

RelativeLayout将实现您想要的效果

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

     <LinearLayout
        android:id="@+id/rightLayout"
        android:layout_width="100dip"
        android:layout_height="fill_parent"
        android:layout_alignParentRight="true"
        android:background="#003300"
        android:orientation="vertical" >
    </LinearLayout>


    <LinearLayout
        android:id="@+id/topLayout"
        android:layout_toLeftOf="@id/rightLayout"
        android:layout_width="fill_parent"
        android:layout_height="100dip"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="#330033"
        android:orientation="vertical" >
    </LinearLayout>

    <LinearLayout
        android:id="@+id/bottomLayout"
        android:layout_toLeftOf="@id/rightLayout"
        android:layout_below="@id/topLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:background="#334433"
        android:orientation="vertical" >
    </LinearLayout>

</RelativeLayout>

作为LinearLayouts和Buttons / TextViews的结果(因为我不确定你想要的是什么):

Result Result2

如果您使用LinearLayouts作为容器来容纳多个视图,请将其保留为原样。

如果您计划在每个“部件”中只有一个视图,请将布局文件中的LinearLayouts更改为该类型。 防爆。如果您希望第1部分只是一个按钮更改

<LinearLayout
        android:id="@+id/topLayout"

<Button
        android:id="@+id/topLayout"

嵌套视图很糟糕,如果你能

,最好避免使用它们

答案 1 :(得分:2)

你可以:

Main linear layout with vertical alignment
add a new linear layout with horizontal alignment
add a new linear layout with horizontal or vertical alignment

因此,在第一个布局(主布局的左侧部分)中,添加一个具有水平对齐的新线性布局,并添加所需的两个元素。 在第二个布局(主布局的右侧部分)中,添加新的线性布局或直接添加要显示的对象