我正在聊天活动,底部有一个发送消息框。发送消息框应始终可见,并始终位于屏幕底部。 Scrollview有一个垂直的LinearLayout,它在循环内部添加了视图。它非常完美,除非在LinearLayout中有足够的视图使其可滚动时,最后一个元素始终被发送消息框覆盖。如果我使发送消息框不可见,您可以看到布局中的所有视图。为清晰起见,请参阅图像。
我不想使用ListView,因为我不想使用适配器
左侧的图像显示最后一个项目。然后使发送消息不可见显示最后一个元素。
这是布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_chat" tools:context="com.example.brian.cleverrent.ChatActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:id="@+id/scrollView" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/chatTimeLineLayout">
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/sendMessageLayout"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:background="#eeeeee"
android:orientation="horizontal">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/chatEditText"
android:layout_weight=".9"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send"
android:id="@+id/chatSendButton"
android:layout_weight=".1"/>
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:4)
也许你可以尝试使用
android:fillViewport="true"
用于ScrollView。 Haven自己对它进行了测试,但它被提议作为解决类似问题的解决方案LinearLayout not expanding inside a ScrollView。
答案 1 :(得分:1)
解决方案是添加......
android:fillViewport="true"
android:paddingBottom="50dp"
感谢Nestel的回答