2013-03-16 130 views
7

在我的布局中,有四个部分分别是头部,可编辑控件,列表和一组按钮。我想保持屏幕底部的按钮。我在布局上做了太多改变,迫使按钮到底。但没有发生。请提供说明来制作我需要的东西。我张贴的布局也如何将一组按钮与屏幕的底部对齐android

<?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> 

enter image description here

回答

7

使包含按钮的LinearLayout的父作为相对并将包含两个按钮的线性布局的属性设置为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> 

6

采取的主要父为相对布局,并给予android:layout_alignParentBottom="true"到按键的布局......

+0

是否可以不改变布局相对? – Riskhan 2013-03-16 06:24:50

+0

尝试移动滚动视图外的按钮布局,但仍然需要采取一个主要的实际布局,这将保存滚动视图和底部按钮布局 – 2013-03-16 06:26:30

+0

我改变mainlayout相对和删除滚动视图,现在所有控件相互重叠 – Riskhan 2013-03-16 06:30:04

2

你必须使用父布局相对,然后使用属性的android:layout_alignParentBottom = “true” 以sublayout。

1

尝试了通过使相对布局父布局和验证码的android:layout_alignParentBottom =“true”以您的按钮布局

<?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> 

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.

这很好用!

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> 

底部的显示按钮。

相关问题