【问题标题】:Android: Button always shownAndroid:始终显示按钮
【发布时间】:2023-03-19 18:12:01
【问题描述】:

我想让一个按钮始终设置在页面底部,但会移动,以便始终显示。我想要这个的主要原因是,当您单击编辑文本字段时,键盘会弹出并隐藏按钮。我希望按钮移动,使其在字段中位于键盘上方,然后在隐藏键盘时返回底部。目前我使用的是相对布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical" android:background="#FFFFF0">

    <RelativeLayout android:orientation="vertical"
        android:id="@+id/titlebar1" android:background="#082386"
        android:layout_width="fill_parent" android:layout_height="50dip"
        android:gravity="center">
        <ImageView android:src="@drawable/banner"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:scaleType="fitXY">
        </ImageView>
    </RelativeLayout>


    <Spinner android:layout_height="wrap_content"
        android:layout_below="@+id/titlebar1" android:layout_width="wrap_content"
        android:id="@+id/NewUsedSpinner" android:prompt="@string/NewUsed_prompt"
        android:layout_marginTop="15dip">
    </Spinner>
    <Spinner android:layout_height="wrap_content"
        android:layout_below="@+id/NewUsedSpinner" android:layout_width="wrap_content"
        android:id="@+id/MakeSpinner" android:prompt="@string/Make_prompt">
    </Spinner>
    <Spinner android:layout_height="wrap_content"
        android:layout_below="@+id/MakeSpinner" android:layout_width="wrap_content"
        android:id="@+id/ModelSpinner" android:prompt="@string/Model_prompt"></Spinner>
    <Spinner android:layout_height="wrap_content"
        android:layout_below="@+id/NewUsedSpinner" android:layout_width="wrap_content"
        android:id="@+id/TrimSpinner" android:prompt="@string/Trim_prompt"></Spinner>
    <Spinner android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:id="@+id/PriceSpinner"
        android:layout_below="@+id/TrimSpinner" android:prompt="@string/Price_prompt"
        android:layout_marginBottom="5dip"></Spinner>



    <TextView android:text="Search within the radius of:"
        android:layout_below="@+id/PriceSpinner" android:id="@+id/textView1"
        android:layout_width="wrap_content" android:layout_alignLeft="@+id/FilterZip"
        android:layout_height="wrap_content" android:textColor="#000"
        android:layout_marginTop="5dip"></TextView>



    <Spinner android:id="@+id/ZipSpinner" android:layout_width="120dip"
        android:layout_below="@+id/textView1" android:layout_height="wrap_content"
        android:prompt="@string/Zip_prompt"></Spinner>
    <EditText android:layout_width="fill_parent"
        android:layout_below="@+id/textView1" android:layout_toRightOf="@+id/ZipSpinner"
        android:layout_height="wrap_content" android:text="Zip" android:id="@+id/FilterZip"
        android:maxLength="5" android:numeric="integer"></EditText>


    <Button android:layout_height="50dip" android:id="@+id/FilterSearchbtn"
        android:layout_alignParentBottom="true" android:layout_width="fill_parent"
        android:text="Search" android:layout_below="@+id/ZipSpinner"
        android:background="@drawable/yellow_btn" android:textStyle="bold"></Button>



</RelativeLayout>

【问题讨论】:

    标签: android xml layout button


    【解决方案1】:

    在您的 Android 清单中,您可以将其添加到您的活动中:

    <activity android:name=".YourActivity"
            android:windowSoftInputMode="adjustResize"
    

    这是官方文档:http://developer.android.com/resources/articles/on-screen-inputs.html

    也许在按钮上尝试alignParentBottom="true",这样它就会一直在底部,你将不得不摆弄你的布局。

    【讨论】:

    • 我认为这是在正确的轨道上,但它只适用于 edittext 字段,这很好,但不完全是我想要完成的。我试图让我的按钮保持在软输入上方,所以一旦键盘出现,按钮就会从键盘底部推到键盘上方。
    • 这绝对是您想要的,我认为您只需正确对齐按钮即可。编辑了我的答案。
    • 好吧,我会搞砸的。我的按钮上已经有 alignparentbottom 但我同意你可能是对的。
    • 哦 - 你不能有 android:layout_alignParentBottom="true" AND android:layout_below="@+id/ZipSpinner" 这两个会冲突。
    【解决方案2】:

    (1) 如果我们只想调整相对布局中具有 (alignParentBottom="true") 的无视图的屏幕,则在 manifest.xml 中的活动标记中设置以下行

    android:windowSoftInputMode="adjustPan"

    (2) 如果我们想用相对布局中具有 (alignParentBottom="true") 的视图调整整个相对布局,则在 manifest.xml 中的活动标记中设置以下行

    android:windowSoftInputMode="adjustResize"

    (3) 如果我们不想在没有相对布局中具有 (alignParentBottom="true") 的视图的情况下调整整个相对布局,请在 manifest.xml 中的活动标记中设置以下行

    android:windowSoftInputMode="adjustPan|adjustResize"

    (4) 如果我们从 manifest.xml 中删除 android:windowSoftInputMode 行,那么它的行为类似于 (2) 选项

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 2021-11-21
      • 2014-08-08
      • 1970-01-01
      • 2018-05-12
      • 2016-06-08
      相关资源
      最近更新 更多