通过键盘隐藏的RecyclerView标题

时间:2015-12-19 19:43:46

标签: android layout scrollview android-recyclerview android-softkeyboard

我有一个RecyclerView,我创建了一个标题。当我按下键盘时,当我尝试单击EditText时,键盘会隐藏标题。 ListView的{​​{1}}部分显示完美,但RecyclerView没有显示,当我尝试向上滚动时,操作栏也没有显示。我试图将RecyclerView header包裹在RecyclerView header中,但似乎没有效果。我知道我无法将ScrollView包裹在RecyclerView中,因为这会导致嵌套垂直ScrollView,因为ScrollViews已经有内置RecyclerView。任何帮助,将不胜感激。谢谢!

代码:

comments.xml:

ScrollView

comments_header.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:flatui="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:fresco="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" android:fitsSystemWindows="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:id="@+id/comments_coordinator_layout">

<android.support.design.widget.AppBarLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/comments_appbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/layout_comments">

        <LinearLayout
            android:id="@+id/send_message"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal" >

            <com.cengalabs.flatui.views.FlatEditText
                android:id="@+id/write_comment"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="5"
                android:paddingLeft="10dp"
                android:gravity="bottom|left"
                android:cursorVisible="false"
                android:hint="Comment back!"
                android:inputType="textMultiLine"
                flatui:fl_fieldStyle="fl_box"
                android:scrollHorizontally="false" />

            <com.cengalabs.flatui.views.FlatButton
                android:id="@+id/send_comment"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:layout_marginLeft="5dp"
                android:layout_gravity="center_vertical|center_horizontal"
                android:gravity="center"
                android:text="send"
                flatui:theme="@array/sea"
                flatui:fl_textAppearance="fl_light"/>
        </LinearLayout>

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@id/send_message"
            android:id="@+id/view_comments">
        </android.support.v7.widget.RecyclerView>
    </RelativeLayout>

Comments.java:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fresco="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
    android:id="@+id/view_post"
    android:layout_marginTop="?attr/actionBarSize"
    android:layout_width="match_parent"
    android:paddingRight="5dp"
    android:paddingLeft="5dp"
    android:orientation="horizontal"
    android:layout_height="175dp"
    android:background="#e6e6e6">

    <com.facebook.drawee.view.SimpleDraweeView
        android:layout_marginTop="15dp"
        android:id="@+id/poster_picture"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:layout_marginLeft="10dp"
        fresco:placeholderImage="@mipmap/blank_prof_pic"
        fresco:roundedCornerRadius="5dp"
        fresco:roundAsCircle="true"
        />

    <TextView
        android:layout_marginLeft="5dp"
        android:layout_marginTop="15dp"
        android:layout_toRightOf="@id/poster_picture"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15sp"
        android:textStyle="bold"
        android:id="@+id/poster_name"/>

    <TextView
        android:layout_alignParentRight="true"
        android:layout_marginTop="15dp"
        android:layout_toRightOf="@id/poster_name"
        android:layout_marginLeft="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15sp"
        android:id="@+id/post_date"/>

    <TextView
        android:layout_marginLeft="5dp"
        android:layout_toRightOf="@id/poster_picture"
        android:layout_below="@id/poster_name"
        android:textSize="20sp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/view_status" />

</RelativeLayout>

的AndroidManifest.xml:

public void populateComments(long postId) {
    LinearLayoutManager llm = new LinearLayoutManager(this);
    llm.setStackFromEnd(true);
    CommentsRecyclerViewAdapter commentsRecyclerViewAdapter = new CommentsRecyclerViewAdapter(getCommentsHeader(postId), commentsDatasource.getCommentsForPost(postId));
    commentsView.setLayoutManager(llm);
    commentsView.setAdapter(commentsRecyclerViewAdapter);
}

显示正在发生的事情的图片:

Header showing, Edit Text not clicked

Edit Text clicked, header not showing

如您所见,如果我尝试向上滚动,则隐藏第一张图像的标题。

0 个答案:

没有答案