【问题标题】:align a text view below a scroll view在滚动视图下方对齐文本视图
【发布时间】:2015-11-01 13:34:50
【问题描述】:

我正在使用以下布局层次结构:
线性布局
....线性布局
....... 文本视图
....相对布局
..........TextView
....滚动视图
....我想要固定底部文本视图的地方

我阅读了 SO - 我需要在 ScrollView 中输入以下属性:

android:layout_weight="1"  

这确保了我的底部文本视图(打算被修复)被显示。

因此,虽然这有效 - 问题是 - 如果我的滚动视图中的内容较少(内容将动态填充) - 底部文本视图会向上爬,使其看起来非常难看。

我想要的是固定底部视图 - 无论滚动视图的内容如何。

这是我的布局:

    <?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="wrap_content"
    android:orientation="vertical" >
        <LinearLayout style="@style/ExamTitleBar" >

        <ImageButton
            android:id="@+id/imgPrevious"
            style="@style/TitleBarAction"
            android:contentDescription="@string/description_home"
            android:onClick="previous"
            android:src="@drawable/previous" />

         <ImageButton
            android:id="@+id/imgHome"
            style="@style/TitleBarAction"
            android:contentDescription="@string/description_home"
            android:onClick="onClickHome"
            android:src="@drawable/title_home" />

        <ImageView style="@style/TitleBarSeparator" />

        <TextView style="@style/ExamTitleBarText" />

        <ImageView style="@style/TitleBarSeparator" />


        <ImageButton
            android:id="@+id/imgNext"
            style="@style/TitleBarAction"
            android:contentDescription="@string/description_search"
            android:onClick="next"
            android:src="@drawable/next" />

        <ImageButton
            android:id="@+id/imgReport"
            style="@style/TitleBarAction"
            android:contentDescription="@string/description_search"
            android:onClick="reportDisplay"
            android:src="@drawable/setttings" />
    </LinearLayout>


    <RelativeLayout style="@style/MessageBar" >

        <TextView
            android:id="@+id/msgBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/questionCount"
            android:layout_alignParentLeft="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:layout_marginLeft="7dip" />

        <TextView
            android:id="@+id/timeLeft"
            android:layout_alignParentRight="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </RelativeLayout>


     <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/questionlabel"
         android:layout_weight="1">


    <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:id="@+id/Question"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:layout_marginLeft="7dip"
            android:layout_marginRight="5dip"
            android:layout_marginTop="5dip"
            android:layout_marginBottom="5dip"
            android:fontFamily="Helvetica"
            android:textSize="17sp"/>



        <LinearLayout style="@style/SeparatorBarTop" >

            <TextView
                android:id="@+id/separatorBar1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>



        <RadioGroup 
            android:id="@+id/radiogroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" 
             android:fontFamily="Helvetica"
            android:textSize="17sp"
            >

            <RadioButton style="@style/RadioButtons"
                android:id="@+id/option1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option1" />

            <RadioButton style="@style/RadioButtons"
                android:id="@+id/option2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option2" />

            <RadioButton style="@style/RadioButtons"
                android:id="@+id/option3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option3" 
                />

            <RadioButton style="@style/RadioButtons"
                android:id="@+id/option4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option4" />
        </RadioGroup>



        <LinearLayout style="@style/SeparatorBarBottom" >

            <TextView
                android:id="@+id/separatorBar2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>

        <!-- image view goes here start -->
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:src="@drawable/velocity_graph" />
        <!-- image view goes here end -->

        <TextView style="@style/AnswerDetails"
            android:id="@+id/AnswerDetails"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:layout_marginLeft="5dip"
            android:layout_marginRight="7dip"
            android:layout_marginTop="5dip" 
            android:fontFamily="Helvetica"
            android:textSize="17sp"/>



        <!-- separator bar for image start
        <LinearLayout style="@style/SeparatorBarBottom" >

            <TextView
                android:id="@+id/separatorImageBar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
        separator for for image end -->

    </LinearLayout>
    </ScrollView>

    <!-- desired fixed bottom view -->
    <LinearLayout  android:layout_gravity="bottom" style="@style/ExamTitleBar" >
        <TextView style="@style/ExamTitleBarText" />
    </LinearLayout>
     <!-- moiraine end -->





</LinearLayout>

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    将 ScrollView 高度设置为固定大小。例如。 android:layout_height="240dp"。一个包含所有组件的 RelativeLayout 就足够了,使用 alignBottom。嵌套布局会降低您的应用性能,请参阅开发文档:http://developer.android.com/training/improving-layouts/optimizing-layout.html)

    【讨论】:

    【解决方案2】:

    1.最后一个Linearlayout应该有固定的高度;

    2.这么多风格,请把layout attr放在layout中;

    3.RelativeLayout在这种情况下比较好;

    4.当android:orientation="vertical",android:layout_gravity="bottom"没用时

    【讨论】:

    • 谢谢 - #1 给最后一个线性布局一个固定的高度仍然有时会在中间移动布局,谢谢 #4 我删除了 layout_gravity 。关于 #3 使用相对布局 - 我在某处读到滚动视图和相对布局效果不佳stackoverflow.com/questions/3126347/…
    • 尝试内联写样式;给我看完整的代码;#3 它说 Scrollview 中的 RelativeLayout ,我们需要 RelativeLayout 中的 Scrollview
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2012-05-06
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多