Android ChatActivity Bottom LinearLayout涵盖ScrollView可滚动区域

时间:2016-04-28 19:57:07

标签: android android-layout

我正在聊天活动,底部有一个发送消息框。发送消息框应始终可见,并始终位于屏幕底部。 Scrollview有一个垂直的LinearLayout,它在循环内部添加了视图。它非常完美,除非在LinearLayout中有足够的视图使其可滚动时,最后一个元素始终被发送消息框覆盖。如果我使发送消息框不可见,您可以看到布局中的所有视图。为清晰起见,请参阅图像。

我不想使用ListView,因为我不想使用适配器

左侧的图像显示最后一个项目。然后使发送消息不可见显示最后一个元素。

enter image description here enter image description here

这是布局

<?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>

2 个答案:

答案 0 :(得分:4)

也许你可以尝试使用

android:fillViewport="true"

用于ScrollView。 Haven自己对它进行了测试,但它被提议作为解决类似问题的解决方案LinearLayout not expanding inside a ScrollView

答案 1 :(得分:1)

解决方案是添加......

android:fillViewport="true"
android:paddingBottom="50dp"

感谢Nestel的回答