我有以下布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/container">
<com.example.SendMessageLayout
android:id="@+id/chatMessageLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
/>
<View
android:id="@+id/separator"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_above="@id/chatMessageLayout"
android:background="@color/seperator_line_inpost"
/>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_above="@id/separator"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycleView"
style="@style/BeepMeListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/chatMessageLayout"
android:layout_alignParentTop="true"
android:transcriptMode="alwaysScroll"
/>
</android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>
虽然SendMessageLayout只是一个包含EditText和Button的布局。 在旧的实现中我使用普通的旧ListView,所以当我请求焦点编辑文本时,键盘会出现,listview没有移动,第一项是可见的。 但是随着RecyclerView的推出,一切都被推高了,不仅顶部项目不在屏幕之外,而且整个布局都在ActionBar之上。
这里看起来如何......
答案 0 :(得分:5)
只需添加一个空的scrollview,已解决:RecyclerView hides Actionbar when SoftKeyboard is opened 解决办法
像这样:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="match_parent"
tools:context="me.drakeet.seashell.ui.social.PostActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
</ScrollView>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<me.drakeet.seashell.widget.MultiSwipeRefreshLayout
android:layout_weight="1"
android:layout_marginBottom="4dp"
android:id="@+id/swipe_refresh_layout"
style="@style/BbsBackground"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_reply_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"/>
</me.drakeet.seashell.widget.MultiSwipeRefreshLayout>
<include
android:layout_gravity="bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/view_reply"/>
</LinearLayout>
</FrameLayout>
答案 1 :(得分:0)
我有同样的问题,我解决了它添加
android:windowSoftInputMode="adjustResize"
在清单
中的活动代码中