0

我正在聊天屏幕上工作,並使用RecyclerView顯示聊天消息。我需要在回收站視圖頂部顯示一條備註消息,當聊天列表滾動時,將滾動屏幕。這是我使用的佈局。使用協調器佈局在LinearLayout底部添加布局的問題

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<android.support.v7.widget.Toolbar 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:layout_alignParentTop="true" 
    android:background="@color/color_toolbar_background" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:contentInsetEnd="0dp" 
    app:contentInsetLeft="0dp" 
    app:contentInsetRight="0dp" 
    app:contentInsetStart="0dp" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 


    <ImageView 
     android:id="@+id/imageViewBack" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="@dimen/dimen_16dp" 
     android:src="@drawable/ic_back_black"/> 

    <TextView 
     android:id="@+id/textViewTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:layout_gravity="center" 
     android:gravity="center" 
     android:text="Title" 
     android:textColor="@color/color_black_text" 
     android:textSize="@dimen/dimen_17sp"/> 

</android.support.v7.widget.Toolbar> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <android.support.design.widget.CoordinatorLayout 
      android:layout_width="match_parent" 
      android:layout_height="@dimen/dimen_0dp" 
      android:layout_weight="1"> 


      <android.support.design.widget.AppBarLayout 
       android:id="@+id/appBarLayout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@color/color_white" 
       android:elevation="@dimen/dimen_0dp" 
       android:visibility="visible" 
       app:elevation="@dimen/dimen_0dp" 
       tools:visibility="visible"> 

       <!-- Layout that should scroll off the screen--> 
       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:background="#EE9F06" 
        android:orientation="vertical" 
        android:padding="@dimen/dimen_16dp" 
        app:layout_scrollFlags="scroll|enterAlwaysCollapsed"> 


        <TextView 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:gravity="center" 
         android:text="lorem ipsum dolor set amet lorem ipsum dolor set amet." 
         android:textColor="@color/color_white" 
         android:textSize="@dimen/dimen_12sp"/> 
       </LinearLayout> 

       <!-- Progress bar to shown while loding previous messages --> 
       <include 
        layout="@layout/layout_load_more_progress" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/appBarLayout" 
        android:layout_gravity="center" 
        android:visibility="gone" 
        tools:visibility="visible"/> 

      </android.support.design.widget.AppBarLayout> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/recyclerViewChat" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:clipToPadding="false" 
       android:overScrollMode="never" 
       android:scrollbars="none" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 


     </android.support.design.widget.CoordinatorLayout> 

     <!-- layout for sending message should be at bottom--> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_gravity="bottom" 
      android:orientation="vertical"> 

      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:background="@color/color_toolbar_background" 
       android:orientation="horizontal"> 

       <EditText 
        android:id="@+id/editTextMessage" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:layout_marginBottom="@dimen/dimen_10dp" 
        android:layout_marginLeft="@dimen/dimen_16dp" 
        android:layout_marginTop="@dimen/dimen_10dp" 
        android:layout_weight="1" 
        android:background="@drawable/drawable_chat_send_message_background" 
        android:hint="@string/string_hint_send_message" 
        android:inputType="textMultiLine|textNoSuggestions" 
        android:minHeight="@dimen/dimen_32dp" 
        android:paddingLeft="@dimen/dimen_5dp" 
        android:paddingRight="@dimen/dimen_5dp" 
        android:textColorHint="@color/color_chat_send_message_border" 
        android:textSize="@dimen/dimen_17sp"/> 

       <TextView 
        android:id="@+id/textViewSend" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="bottom" 
        android:clickable="true" 
        android:padding="@dimen/dimen_16dp" 
        android:text="@string/string_send" 
        android:textColor="@color/color_accent" 
        android:textSize="@dimen/dimen_17sp"/> 
      </LinearLayout> 
     </LinearLayout> 

    </LinearLayout> 

    <!--Progress bar occupying complete screen below Toolbar --> 
    <include 
     layout="@layout/layout_progress_bar_full_screen" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:visibility="gone" 
     tools:visibility="visible"/> 
</RelativeLayout></LinearLayout> 

我的問題是來自聊天的最後一條消息被隱藏在發送消息佈局後面。我需要滾動回收站視圖才能看到最後一條消息。我使用com.android.support:design:23.2.0。我還爲回收視圖設置了linearLayoutManager.setStackFromEnd(true)。 那麼我應該如何避免發送消息佈局隱藏最後一條消息?

回答

0

對於發送消息佈局使用

android:layout_weight="0"

代替

android:layout_alignParentBottom="true"(這並沒有在的LinearLayout父效應)

android:layout_gravity="bottom"