【问题标题】:AlignParentBottom + marginBottom not working togetherAlignParentBottom + marginBottom 不能一起工作
【发布时间】:2014-01-09 09:26:55
【问题描述】:

在我的活动视图中,我有RelativeLayout,其中有两种布局:LinearLayout-“ll”(必须位于屏幕顶部)和相对布局-“rl”(必须位于底部)屏幕)。当我专注于 ll 中的 editText 时,它会打开键盘,我的 rl 会上升并显示在 ll 上。然后我尝试使用android:layout_below="@+id/ll",但没有成功。我还尝试在清单中添加带有各种参数的android:windowSoftInputMode="",但没有任何帮助。

SO 如何在键盘打开时保持RelativeLayout“rl”在屏幕底部?

这里是代码

<?xml version="1.0" encoding="utf-8"?>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingTop="@dimen/main_container_padding"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:xxx="http://schemas.android.com/apk/res-auto" >

            <!-- Layout of username, password, Sign in button -->

            <LinearLayout 
                android:id="@+id/llusernamePassLogin"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:orientation="vertical"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="20dp"
                android:layout_gravity="center_horizontal" >

                <TextView 
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:paddingLeft="20dp"
                    android:paddingRight="20dp"
                    android:text="@string/loginPageText" />

                <am.bs.xxx.view.EditTextBase
                    android:id="@+id/login_vcardnumber"
                    android:layout_width="fill_parent"
                    android:layout_height="@dimen/edit_text_height"
                    android:layout_margin="@dimen/edit_text_margin"
                    android:hint="@string/email"
                    android:inputType="text" />

                <am.bs.xxx.view.EditTextBase
                    android:id="@+id/login_password"
                    android:layout_width="fill_parent"
                    android:layout_height="@dimen/edit_text_height"
                    android:layout_margin="@dimen/edit_text_margin"
                    android:hint="@string/password"
                    android:inputType="textPassword" />


                <Button
                    android:id="@+id/signin"
                    style="@style/main_button"
                    android:layout_width="fill_parent"
                    android:layout_height="@dimen/edit_text_height"
                    android:layout_margin="@dimen/edit_text_margin"
                    android:background="@drawable/main_button_shape_selector"
                    android:onClick="createButtonClickListener"
                    android:text="@string/signIn" />

            </LinearLayout>

            <!-- Create VCard or Register layout -->
            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_alignParentBottom="true"
                android:layout_marginBottom="40dp"
                android:layout_below="@+id/llusernamePassLogin" >

                <!-- Register button -->
                <LinearLayout 
                    android:id="@+id/llRegisterButtonLayout"
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:orientation="vertical"
                    android:paddingBottom="1dp"
                    android:gravity="center_horizontal"
                    android:paddingRight="10dp" >

                    <ImageButton
                        android:id="@+id/login_register_button"
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:src="@drawable/reg"
                        android:onClick="createButtonClickListener"
                        android:background="@color/transparent" />

                    <TextView 
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:text="@string/registration" />    

                </LinearLayout>

                <!-- Create VCard button -->
                <LinearLayout 
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:orientation="vertical"
                    android:layout_toRightOf="@+id/llRegisterButtonLayout"
                    android:paddingBottom="1dp"
                    android:gravity="center_horizontal" >

                    <ImageButton 
                        android:id="@+id/create_vc_button"
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:src="@drawable/create_vcard"
                        android:onClick="createButtonClickListener"
                        android:background="@color/transparent" />

                    <TextView 
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:text="@string/createVcard" />    

                </LinearLayout>


            </RelativeLayout>
    </RelativeLayout>

【问题讨论】:

  • 你能粘贴你的布局和 AndroidManifest.xml 的代码吗?你试过android:windowSoftInputMode="adjustPan",对吧?
  • 感谢您的评论,是的,我试过了,没有帮助

标签: android android-layout android-relativelayout android-softkeyboard window-soft-input-mode


【解决方案1】:

您似乎需要 android:windowSoftInputMode="adjustResize" 并将您的根 RelativeLayout 标记为 isScrollContainer=true

【讨论】:

  • 感谢您的回答,但没有帮助。所有的问题是我的根相对布局的高度是 fill_parent 而第二个 rl 是 alignParentBottom。
【解决方案2】:

试试这个..删除android:layout_below="@+id/llusernamePassLogin"

     <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="40dp" >

【讨论】:

  • 感谢您的回答,但没有帮助:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 2019-08-17
  • 2020-06-30
相关资源
最近更新 更多