代码之家  ›  专栏  ›  技术社区  ›  Europa

将LinearLayout移到父LinearLayout的底部

  •  0
  • Europa  · 技术社区  · 6 年前

    我有一个具有背景图像的线性布局。

    LinearLayout还具有一个子LinearLayout,其中包含一个文本视图。子LinearLayout具有20%的透明背景色。

    我的问题是我要将子LinearLayout移到父LinearLayout的底部。现在子LinearLayout位于父LinearLayout的垂直中心。

    图片:

    我尝试过不同的技术,包括使用相对布局。

    设计XML:。

    <?xml version=“1.0”encoding=“utf-8”?>
    <scrollview xmlns:android=“http://schemas.android.com/apk/res/android”
    xmlns:tools=“http://schemas.android.com/tools”
    android:layout_width=“填充父级”
    android:layout_height=“填充父级”
    android:fitsSystemWindows=“真”
    android:fillViewport=“真”
    工具:context=“mainActivity”>
    
    <线性布局
    android:orientation=“垂直”
    android:layout_width=“匹配父级”
    android:layout_height=“match_parent”>
    
    
    <!--主季图片-->
    <线性布局
    android:id=“@+id/linearlayoutmain”
    android:layout_width=“匹配父级”
    android:layout_height=“300px”
    android:orientation=“垂直”
    android:background=“@drawable/img_season_02”>
    </linearlayout>
    <!--//主季节图像-->
    
    <!--导航-->
    <表格布局
    android:id=“@+id/TableLayoutNavigation”
    android:layout_width=“匹配父级”
    android:layout_height=“包装内容”
    android:layout_centerHorizontal=“真”
    安卓:columncount=“3”
    >
    
    <!--第1行-->
    <表格行
    
    android:layout_width=“匹配父级”
    android:layout_height=“0dp”
    android:layout_weight=“1”>
    
    <!--第1行-第1列-->
    <线性布局
    安卓:id=“@+id/linearlayoutwood”
    android:布局“权重=”3“
    android:layout_width=“0dp”
    android:layout_height=“100dp”
    android:gravity=“中心”
    android:orientation=“垂直”
    android:background=“@drawable/img_tile_food”
    android:layout_margintop=“2dp”
    android:layout_marginright=“1dp”
    android:layout_marginlet=“2dp”>
    
    
    <线性布局
    android:layout_width=“匹配父级”
    android:layout_height=“包装内容”
    android:background=“bb000000”
    android:orientation=“垂直”
    android:layout_AlignParentBottom=“真”
    android:paddingleft=“6dp”>
    
    <文本视图
    android:id=“@+id/textviewMyProfileFood”
    android:layout_width=“包装内容”
    android:layout_height=“包装内容”
    android:layout_margintop=“3dp”
    android:text=“@string/food”
    android:textpearance=“?android:attr/text外观媒体”
    android:textcolor=“@color/colorwhite”/>
    </linearlayout>
    </linearlayout>
    <!--//第1行-第1列-->
    
    
    <!--第1行-第2列-->
    <线性布局
    android:id=“@+id/linearlayoutexercise”
    android:layout_width=“0dp”
    android:layout_height=“100dp”
    android:layout_marginlet=“1dp”
    android:layout_marginright=“1dp”
    android:layout_margintop=“2dp”
    android:布局“权重=”3“
    android:background=“@drawable/img_tile_练习”
    android:gravity=“中心”
    android:orientation=“垂直”>
    
    <线性布局
    android:layout_width=“匹配父级”
    android:layout_height=“包装内容”
    android:background=“bb000000”
    android:orientation=“垂直”
    android:layout_AlignParentBottom=“真”
    android:paddingleft=“6dp”>
    
    <文本视图
    android:id=“@+id/textView练习标题”
    android:layout_width=“包装内容”
    android:layout_height=“包装内容”
    android:layout_margintop=“3dp”
    android:text=“@string/练习”
    android:textpearance=“?android:attr/text外观媒体”
    android:textcolor=“@color/colorwhite”/>
    
    
    </linearlayout>
    </linearlayout>
    <!--//第1行-第2列-->
    
    <!--第1行-第3列-->
    <线性布局
    android:id=“@+id/linearlayoutmyprofile”
    android:布局“权重=”3“
    android:layout_width=“0dp”
    android:layout_height=“100dp”
    android:gravity=“中心”
    android:orientation=“垂直”
    android:background=“@drawable/img_tile_profile”
    android:layout_margintop=“2dp”
    android:layout_marginright=“1dp”
    android:layout_marginlet=“2dp”>
    
    
    <线性布局
    android:layout_width=“匹配父级”
    android:layout_height=“包装内容”
    android:layout_AlignParentBottom=“真”
    android:background=“bb000000”
    android:orientation=“垂直”
    android:paddingleft=“6dp”>
    
    <文本视图
    android:id=“@+id/textViewMyProfileTitle”
    android:layout_width=“包装内容”
    android:layout_height=“包装内容”
    android:layout_margintop=“3dp”
    android:text=“@string/my_配置文件”
    android:textpearance=“?android:attr/text外观媒体”
    android:textcolor=“@color/colorwhite”/>
    </linearlayout>
    </linearlayout>
    <!--//第1行-第3列-->
    </tablerow>
    
    <!--//第1行-->
    </tablelayout>
    <!--//导航-->
    
    
    </linearlayout>
    </scrollview>
    
    
    

    我的问题是我要将子LinearLayout移到父LinearLayout的底部。现在子线性布局位于父线性布局的垂直中心。

    图片:

    enter image description here

    我尝试过不同的技术,包括使用相对布局。

    设计XML:

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fitsSystemWindows="true"
        android:fillViewport="true"
        tools:context=".MainActivity">
    
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
    
            <!-- Main season image -->
            <LinearLayout
                android:id="@+id/linearLayoutMain"
                android:layout_width="match_parent"
                android:layout_height="300px"
                android:orientation="vertical"
                android:background="@drawable/img_season_02">
            </LinearLayout>
            <!-- //Main season image -->
    
            <!-- Navigation -->
            <TableLayout
                android:id="@+id/tableLayoutNavigation"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:columnCount="3"
                >
    
                <!-- Row 1 -->
                <TableRow
    
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1">
    
                    <!-- Row 1 - Columns 1 -->
                    <LinearLayout
                        android:id="@+id/linearLayoutFood"
                        android:layout_weight=".3"
                        android:layout_width="0dp"
                        android:layout_height="100dp"
                        android:gravity="center"
                        android:orientation="vertical"
                        android:background="@drawable/img_tile_food"
                        android:layout_marginTop="2dp"
                        android:layout_marginRight="1dp"
                        android:layout_marginLeft="2dp">
    
    
                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:background="#bb000000"
                            android:orientation="vertical"
                            android:layout_alignParentBottom="true"
                            android:paddingLeft="6dp">
    
                            <TextView
                                android:id="@+id/textViewMyProfileFood"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="3dp"
                                android:text="@string/food"
                                android:textAppearance="?android:attr/textAppearanceMedium"
                                android:textColor="@color/colorWhite" />
                        </LinearLayout>
                    </LinearLayout>
                    <!-- //Row 1 - Column 1 -->
    
    
                    <!-- Row 1 - Column 2 -->
                    <LinearLayout
                        android:id="@+id/linearLayoutExercise"
                        android:layout_width="0dp"
                        android:layout_height="100dp"
                        android:layout_marginLeft="1dp"
                        android:layout_marginRight="1dp"
                        android:layout_marginTop="2dp"
                        android:layout_weight=".3"
                        android:background="@drawable/img_tile_exercises"
                        android:gravity="center"
                        android:orientation="vertical">
    
                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:background="#bb000000"
                            android:orientation="vertical"
                            android:layout_alignParentBottom="true"
                            android:paddingLeft="6dp">
    
                            <TextView
                                android:id="@+id/textViewExerciseTitle"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="3dp"
                                android:text="@string/exercises"
                                android:textAppearance="?android:attr/textAppearanceMedium"
                                android:textColor="@color/colorWhite" />
    
    
                        </LinearLayout>
                    </LinearLayout>
                    <!-- //Row 1 - Column 2 -->
    
                    <!-- Row 1 - Column 3 -->
                    <LinearLayout
                        android:id="@+id/linearLayoutMyProfile"
                        android:layout_weight=".3"
                        android:layout_width="0dp"
                        android:layout_height="100dp"
                        android:gravity="center"
                        android:orientation="vertical"
                        android:background="@drawable/img_tile_profile"
                        android:layout_marginTop="2dp"
                        android:layout_marginRight="1dp"
                        android:layout_marginLeft="2dp">
    
    
                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_alignParentBottom="true"
                            android:background="#bb000000"
                            android:orientation="vertical"
                            android:paddingLeft="6dp">
    
                            <TextView
                                android:id="@+id/textViewMyProfileTitle"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="3dp"
                                android:text="@string/my_profile"
                                android:textAppearance="?android:attr/textAppearanceMedium"
                                android:textColor="@color/colorWhite" />
                        </LinearLayout>
                    </LinearLayout>
                    <!-- //Row 1 - Column 3 -->
                </TableRow>
    
                <!-- //Row 1 -->
            </TableLayout>
            <!-- //Navigation -->
    
    
        </LinearLayout>
    </ScrollView>
    
    4 回复  |  直到 6 年前
        1
  •  1
  •   Ejaz Ahmad    6 年前

    只有对每一行都这样做才能解决问题。

    <!-- Row 1 - Column 3 -->
                    <LinearLayout
                        android:id="@+id/linearLayoutMyProfile"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_marginLeft="2dp"
                        android:layout_marginRight="1dp"
                        android:layout_marginTop="2dp"
                        android:layout_weight=".3"
                        android:background="@drawable/com_facebook_profile_picture_blank_square"
                        android:gravity="center"
                        android:orientation="vertical">
    
    
                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_alignParentBottom="true"
    
                            android:gravity="bottom"
                            android:orientation="vertical"
                            android:paddingLeft="6dp">
    
                            <TextView
                                android:id="@+id/textViewMyProfileTitle"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:layout_gravity="bottom"
                                android:background="#bb000000"
                                android:layout_marginTop="3dp"
                                android:text="5454"
                                android:textAppearance="?android:attr/textAppearanceMedium"
                                android:textColor="@color/white" />
                        </LinearLayout>
                    </LinearLayout>
    

    希望它能解决你的问题

        2
  •  0
  •   Cruceo    6 年前

    android:layout_alignParentBottom 不是支持的属性 LinearLayout .如果要使用它,则应将父线性布局转换为 RelativeLayout 支持这些相对属性。

    或者,一个更简单的选择是只设置父直线布局的重力: android:gravity="bottom"

        3
  •  0
  •   LBurcon    6 年前

    另外,为什么不在文本视图中设置背景色呢?

    android:background=“@color/您的\u颜色”

    然后您就可以消除覆盖文本视图的缩减线性布局。

        4
  •  0
  •   Akash Khatri    6 年前

    我想你要做的是把android:layout_gravity=“bottom”放在你想放在底部的线性布局中