android:layout_weight with vertical linearlayout

时间:2012-07-20 03:00:34

标签: android xml layout

我正在尝试创建一个像以下一样的Android布局:

[####的EditText ###] [按钮]

[####列表视图#####]

因为我正在使用重量,但是下面的xml给了我一些非常类似的东西:

[EDITTEXT] [按钮] [ListView的]

有人知道为什么吗?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/background"
    android:weightSum="10"
     >

    <EditText android:id="@+id/nova_lista"
        android:inputType="text"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="9"
        android:hint="@string/new_list_hint">

    </EditText>

    <Button android:id="@+id/nova_lista_botao"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:text="@string/new_list"/>

    <ListView
        android:id="@+id/list_of_lists"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

3 个答案:

答案 0 :(得分:7)

您正在使用android:orientation="vertical"

并且您指定的android:layout_width等于0dp

如果您在LinearLayout中使用layout layout_height,则垂直0 dp应为Horizontal,而layout_width布局weight应为0 dp。

EditTextButton放在单独的Horizontal布局中。使用以下代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/background"
     >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="10"
     >

    <EditText android:id="@+id/nova_lista"
        android:inputType="text"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="9"
        android:hint="@string/new_list_hint">

    </EditText>

    <Button android:id="@+id/nova_lista_botao"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:text="@string/new_list"/>
</LinearLayout>
    <ListView
        android:id="@+id/list_of_lists"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

答案 1 :(得分:1)

也许这就是你要找的东西:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#ffffff" >    


    <EditText 
        android:id="@+id/nova_lista"       
        android:layout_height="wrap_content"
        android:layout_width="fill_parent" 
        android:layout_toLeftOf="@id/nova_lista_botao"
        android:inputType="text"       
        android:hint="something">

    </EditText>

    <Button 
        android:id="@+id/nova_lista_botao"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentRight="true"
        android:text="Hello"/>

    <ListView
        android:id="@+id/list_of_lists"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/nova_lista" >
    </ListView>

</RelativeLayout>

enter image description here

希望有所帮助。

答案 2 :(得分:0)

1.设置你的主要布局是RelativeLayout

2.创建LinarLayout并将EditText和Button移动到LinerLayout

3.SetLinerLayout为“@ + id / top_layout”并设置listview为

  

机器人:layout_below = “@ + ID / top_layout”

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical"
   android:background="@drawable/background"
   android:weightSum="10" >

    <LinearLayout
       android:id="@+id/top_layout"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal" >

        <EditText
           android:id="@+id/nova_lista"
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="9"
           android:hint="@string/new_list_hint"
           android:inputType="text" >
        </EditText>

        <Button
        android:id="@+id/nova_lista_botao"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/new_list" />

    </LinearLayout>

    <ListView
       android:id="@+id/list_of_lists"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@+id/top_layout" >
    </ListView>

</RelativeLayout>