android - relativelayout、include 和layout_alignParentBottom 不起作用

标签 android xml user-interface

如何让我的内容恰好位于屏幕末尾?此时他读完了内容。

<!-- language: lang-xml -->
<?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">
    <ScrollView android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:background="#f6ba79"
        android:orientation="vertical" android:id="@+id/layout">
        <LinearLayout android:id="@+id/linearLayout2"
            android:orientation="vertical" android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:background="@drawable/preferences_background">
            <include android:id="@+id/include1" android:layout_width="fill_parent"
                layout="@layout/top" android:layout_height="wrap_content"></include>
            <LinearLayout android:layout_width="fill_parent"
                android:gravity="center" android:id="@+id/linearLayout1"
                android:layout_height="wrap_content">
                <LinearLayout android:orientation="vertical"
                    android:layout_width="270dp" android:id="@+id/body"
                    android:layout_height="wrap_content" android:focusableInTouchMode="true">
                    <ImageView android:src="@drawable/preferences"
                        style="@style/Theme.Connector.ImageElement" android:layout_width="wrap_content"
                        android:id="@+id/title" android:layout_height="wrap_content"></ImageView>
                    <Spinner android:layout_width="fill_parent"
                        style="@style/Theme.Connector.WelcomeSpinner"
                        android:layout_weight="1" android:id="@+id/spinner_isp"
                        android:layout_height="wrap_content" />
                    <EditText android:singleLine="true" android:hint="@string/txt_user"
                        android:layout_height="wrap_content" android:layout_width="fill_parent"
                        android:id="@+id/edit_user" style="@style/Theme.Connector.PreferencesInput" />
                    <EditText android:singleLine="true" android:hint="@string/txt_password"
                        android:layout_height="wrap_content" android:layout_width="fill_parent"
                        android:id="@+id/edit_password" android:password="true"
                        style="@style/Theme.Connector.PreferencesInput" />
                    <LinearLayout android:orientation="vertical"
                        android:layout_width="fill_parent" android:id="@+id/frm_action"
                        android:layout_height="fill_parent" android:baselineAligned="false">
                        <Button android:text="@string/btn_save"
                            android:layout_weight="0" android:layout_width="130dp"
                            android:layout_height="wrap_content" style="@style/Theme.Connector.Button"
                            android:layout_gravity="center" android:id="@+id/btn_save"></Button>
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </ScrollView>
        <include android:id="@+id/include1" android:layout_width="fill_parent"
            layout="@layout/menu" android:layout_height="wrap_content" android:layout_alignParentBottom="true"></include>
</RelativeLayout>

Device Screen Capture

最佳答案

问题是您的 ScrollerView 有一个layout_height =“fill_parent”。 relativeLayout 将使该 View 填充整个空间。

LinearLayout 在您的情况下效果更好:

<?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">
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#f6ba79"
        android:orientation="vertical"
        android:id="@+id/layout">

        ...

    </ScrollView>
    <include
        android:id="@+id/include1"
        android:layout_width="fill_parent"
        layout="@layout/menu"
        android:layout_height="wrap_content" />
</LinearLayout>

这里的关键是将 ScrollerView 的高度设置为 0dp 并将权重设置为 1 (或任何实际数字) 。然后,LinearLayout 将拉伸(stretch) ScrollerView 以填充 View ,并仍然为底部的 @layout/menu 腾出空间。

关于android - relativelayout、include 和layout_alignParentBottom 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6298438/

相关文章:

android - 将 ArrayList 保存到 SharedPreferences

xml - 配置 Perl 脚本为超大网站自动生成 XML 站点地图

java - 如何通过选择微调项目来更改应用程序语言?

java - 如何使用 Mule 的 XML 到对象转换器?

user-interface - 在 React Native 中处理不同屏幕尺寸的正确方法,

android - 具有自定义布局的 ActionBar 在 Android 4.4.2 (KitKat) 上不占据全屏宽度

android - ndk路径可以手动设置,但不能自动设置

android - 异步任务、进度条和 I/O

c++ - 未绘制 QToolButton 上的文本

java - 单击按钮后向 JPanel 添加按钮