在我的布局中,分别有四个部分:标题,可编辑控件,列表和一组按钮。我想将按钮保持在屏幕下方。我在布局上做了太多更改以强制按钮到底。但什么都没发生。请提供说明,以满足我的需求。我也在发布布局
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- heading for basic settings -->
<TextView
android:id="@+id/setup_macroheading"
style="@style/txtHeading" />
<View
android:layout_width="fill_parent"
android:layout_height="20dp"/>
<!-- macro name -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:textColor="@color/white"
android:text="Macro Name"/>
<EditText
android:id="@+id/setup_macroname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:maxLength="12"
android:inputType="textCapCharacters"
android:singleLine="true"/>
</LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="20dp"/>
<ListView
android:id="@+id/lvMacroList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<!-- Save & Cancel button -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:layout_gravity="bottom"
android:orientation="horizontal">
<Button
android:id="@+id/setup_macroSavebtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1"
android:onClick="onSaveButtonClick"
android:text="Save"/>
<Button
android:id="@+id/setup_macroCancelbtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:onClick="onCancelButtonClick"
android:text="Cancel"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
答案 0 :(得分:8)
将包含按钮的LinearLayout的Parent设为相对,并将包含两个按钮的线性布局的属性设置为android:layout_alignParentBottom =“true”。您还可以将“线性布局”的重力设置为“底部”。
试试这个:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- heading for basic settings -->
<TextView
android:id="@+id/setup_macroheading"
style="@style/txtHeading" />
<View
android:layout_width="fill_parent"
android:layout_height="20dp"/>
<!-- macro name -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:textColor="@color/white"
android:text="Macro Name"/>
<EditText
android:id="@+id/setup_macroname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:maxLength="12"
android:inputType="textCapCharacters"
android:singleLine="true"/>
</LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="20dp"/>
<ListView
android:id="@+id/lvMacroList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<!-- Save & Cancel button -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:orientation="horizontal"
android:paddingLeft="20dp"
android:paddingRight="20dp" >
<Button
android:id="@+id/setup_macroSavebtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1"
android:onClick="onSaveButtonClick"
android:text="Save"/>
<Button
android:id="@+id/setup_macroCancelbtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:onClick="onCancelButtonClick"
android:text="Cancel"/>
</LinearLayout>
</RelativeLayout>
答案 1 :(得分:6)
将主父作为相对布局,并将android:layout_alignParentBottom="true"
赋予按钮的布局......
答案 2 :(得分:2)
您必须使用父布局作为亲戚,然后使用属性android:layout_alignParentBottom =“true”进行子布局。
答案 3 :(得分:2)
相对布局是Karan_Rana建议的最佳方式,但如果您不想使用相对布局,请试试这个:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<!-- heading for basic settings -->
<TextView
android:id="@+id/setup_macroheading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<View
android:layout_width="fill_parent"
android:layout_height="20dp"/>
<!-- macro name -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:textColor="@color/white"
android:text="Macro Name"/>
<EditText
android:id="@+id/setup_macroname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:maxLength="12"
android:inputType="textCapCharacters"
android:singleLine="true"/>
</LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="20dp"/>
<ListView
android:id="@+id/lvMacroList"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
</ScrollView>
<!-- Save & Cancel button -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:layout_weight="0"
android:layout_gravity="bottom"
android:orientation="horizontal">
<Button
android:id="@+id/setup_macroSavebtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1"
android:onClick="onSaveButtonClick"
android:text="Save"/>
<Button
android:id="@+id/setup_macroCancelbtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:onClick="onCancelButtonClick"
android:text="Cancel"/>
</LinearLayout>
在这里,您需要将LinearLayout用作父级并为其设置weightSum
,并将相同的layout_weight
应用于全屏所需的布局。您想要在底部(保存和取消)的布局将layout_weight
应用于0。
这很好用!
答案 4 :(得分:1)
通过将相对布局设为父布局和android:layout_alignParentBottom =&#34; true&#34;来尝试此代码。到您的按钮布局
<?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"
>
<!-- heading for basic settings -->
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<View
android:layout_width="fill_parent"
android:layout_height="20dp" />
<!-- macro name -->
<LinearLayout
android:id="@+id/llTop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="20dp"
android:paddingRight="20dp" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:text="Macro Name" />
<EditText
android:id="@+id/setup_macroname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:inputType="textCapCharacters"
android:maxLength="12"
android:singleLine="true" />
</LinearLayout>
<!-- Save & Cancel button -->
</RelativeLayout>
</ScrollView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:paddingLeft="20dp"
android:paddingRight="20dp" >
<Button
android:id="@+id/setup_macroSavebtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1"
android:onClick="onSaveButtonClick"
android:text="Save" />
<Button
android:id="@+id/setup_macroCancelbtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:onClick="onCancelButtonClick"
android:text="Cancel" />
</LinearLayout>
答案 5 :(得分:0)
试试这个。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true" >
<Button
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginRight="2dp"
android:text="Modify" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginRight="2dp"
android:text="Cancle" />
</LinearLayout>
</RelativeLayout>
底部的显示按钮。