【问题标题】:Layout with a header at the top and a footer at the bottom in AndroidAndroid中顶部有页眉、底部有页脚的布局
【发布时间】:2011-05-14 20:55:39
【问题描述】:

我正在尝试创建一个我认为非常简单的 Android 屏幕布局。我基本上想要一个顶部的页眉和一个底部的页脚,以及一个填充屏幕空间其余部分的 EditText 框。页眉和 EditText 框工作正常,但我似乎无法显示页脚。这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent" 
              android:layout_height="match_parent"
              android:orientation="vertical">
    <ImageView android:id="@+id/imageView1" 
               android:src="@drawable/droidiary"
               android:layout_width="wrap_content" 
               android:layout_height="wrap_content"
               android:layout_gravity="center">
    </ImageView>
    <View android:id="@+id/view1" 
          android:layout_height="2dip"
          android:background="#FFAAAAFF" 
          android:layout_width="wrap_content">
    </View>
    <RelativeLayout android:id="@+id/rlLayout1"
                    android:layout_width="fill_parent" 
                    android:layout_height="fill_parent">
        <EditText android:inputType="text|textMultiLine"
                  android:layout_alignParentTop="true" 
                  android:hint="Type about your day..."
                  android:text="" 
                  android:id="@+id/txtEntry" 
                  android:layout_height="match_parent"
                  android:layout_width="match_parent">
        </EditText>
        <LinearLayout android:layout_alignParentBottom="true"
                      android:id="@+id/linearLayout1" 
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content">
            <View android:id="@+id/view2" 
                  android:layout_height="2dip"
                  android:background="#FFAAAAFF" 
                  android:layout_width="wrap_content">
            </View>
            <TextView android:text="TextView" 
                      android:id="@+id/textView1"
                      android:layout_width="wrap_content" 
                      android:layout_height="wrap_content">
            </TextView>
        </LinearLayout>
    </RelativeLayout>
</LinearLayout>

就像我说的,除了我的页脚外,一切正常。谁能告诉我我做错了什么?

【问题讨论】:

    标签: android android-layout android-linearlayout android-relativelayout


    【解决方案1】:

    您的布局对于您想要实现的目标来说太复杂了。我建议避免使用RelativeLayout,除非您绝对必须使用它。

    这里是一个简单的例子,说明如何使用LinearLayout 创建页眉/内容/页脚布局:
    (注意content 元素中的layout_weight

    <?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">
    
            <TextView                   
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:padding="5dp" 
                    android:text="Header" />
    
            <EditText
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:singleLine="false" 
                    android:hint="Type about your day..."
                    android:text="" >
            </EditText>
    
            <TextView                   
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:padding="5dp" 
                    android:text="Footer" />
    
    </LinearLayout>        
    

    【讨论】:

    • 这解决了我的问题。感谢您简化我的过度设计
    【解决方案2】:

    似乎有很多额外的不需要的布局。这将为您布局三个区域,您可以在其中放置任何内容或将它们设为视图控件。每个区域的高度将为 25%、50%、25%。如果您不想要百分比,请从页眉和页脚中删除权重并设置它们的宽度值,但保留 EditText 的权重。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="match_parent" 
                  android:layout_height="match_parent"
                  android:orientation="vertical">
       <View android:id="@+id/headerView"
             android:layout_width="match_parent"
             android:layout_height="0dip"
             android:layout_weight="2" />
       <EditText android:id="@+id/editBox"
             android:layout_width="match_parent"
             android:layout_height="0dip"
             android:layout_weight="1" />
       <View android:id="@+id/footerView"
             android:layout_width="match_parent"
             android:layout_height="0dip"
             android:layout_weight="2" />
    </LinearLayout>
    

    【讨论】:

      【解决方案3】:

      如果我正确理解了布局的哪一部分是页眉和页脚,请添加以下行:

      android:layout_above="@+id/linearLayout1"
      

      到编辑文本

      【讨论】:

        猜你喜欢
        • 2019-03-14
        • 2015-02-02
        • 1970-01-01
        • 2011-12-27
        • 1970-01-01
        • 1970-01-01
        • 2012-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多