我的布局就像这样
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/searchKey"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="xx" />
<ScrollView
android:layout_weight="1"
android:fillViewport="true"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/search_results"
android:textSize="@dimen/text_font_size"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</ScrollView>
<LinearLayout
android:orientation="horizontal"
android:layout_gravity="center|bottom"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/lastCharacterButton"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lastChar_btn" />
<Button
android:id="@+id/nextCharacterButton"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nextChar_btn" />
</LinearLayout>
</LinearLayout>
但是,当文本很少或没有时,按钮会被拉起,当search_results TextView中的文本太多时,按钮将不会显示,因为scrollview将空间一直带到底部。是否有任何建议始终将按钮保持在底部并始终可见?
答案 0 :(得分:1)
以下是我为您准备的一些示例代码。您基本上需要取出包装xml布局的线性布局并改为使用相对布局。完成后,您可以使用按钮将ID添加到线性布局,然后将编辑文本与父顶部对齐。然后,您可以将scrollview放在edittext下面,然后将上面的scrollview放到包含按钮的线性布局中。这应该有效!
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.thegamefan93.loginregister.LoginActivity">
<EditText
android:id="@+id/searchKey"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_alignParentTop="true"
android:layout_height="wrap_content"
android:hint="xx" />
<ScrollView
android:layout_weight="1"
android:fillViewport="true"
android:layout_below="@id/searchKey"
android:layout_width="match_parent"
android:layout_above="@+id/LL1"
android:layout_height="wrap_content">
<TextView
android:id="@+id/search_results"
android:textSize="20sp"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</ScrollView>
<LinearLayout
android:orientation="horizontal"
android:layout_gravity="center|bottom"
android:layout_weight="1"
android:id="@+id/LL1"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/lastCharacterButton"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Last_Char" />
<Button
android:id="@+id/nextCharacterButton"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="next_char" />
</LinearLayout>
</RelativeLayout>
答案 1 :(得分:1)
首先,您必须将ScrollView的高度设置为0dp。
<ScrollView
android:layout_weight="1"
android:fillViewport="true"
android:layout_width="match_parent"
android:layout_height="0dp">
<TextView
android:id="@+id/search_results"
android:textSize="@dimen/text_font_size"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</ScrollView>
你必须这样做,因为权重参数将根据可用空间的大小来控制视图的大小。如果将其设置为包装内容,则需要多少空间来包装内容。
然后你需要删除你的LinearLayout的重量参数:
<LinearLayout
android:orientation="horizontal"
android:layout_gravity="center|bottom"
android:id="@+id/LL1"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/lastCharacterButton"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Last_Char" />
<Button
android:id="@+id/nextCharacterButton"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="next_char" />
</LinearLayout>
这样做的原因恰好与前面的解释相反:在这种情况下,换行内容将占用始终显示按钮所需的空间。
答案 2 :(得分:0)
试试这个,
foreground