【发布时间】:2017-12-22 21:13:40
【问题描述】:
早安,先生们!
我有一个带有 TabLayout+ViewPager 和 2 个片段的 Activity。在第一个片段中,我有一个带有一些项目的 RecyclerView 和工具栏中的 SearchView。当您的搜索查询使 RecyclerView 消失时,我想显示占位符(我的意思是您没有找到任何结果和RecyclerView.setVisibility(GONE))。所以这是我的 Fragment.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/pale_grey">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_results"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:scrollbarThumbVertical="@android:color/darker_gray"
android:scrollbarSize="4dp"/>
<LinearLayout
android:id="@+id/ll_no_categories"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_below="@+id/toolbar"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone"
android:fitsSystemWindows="true">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginBottom="24dp"
android:visibility="visible"
app:srcCompat="@drawable/vector_search_big" />
<TextView
android:id="@+id/tv_no_categories"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/activity_home_services_category_list_empty"
android:textColor="@color/black_40"
android:textSize="16sp"/>
</LinearLayout>
</RelativeLayout>
所以当我的ItemList.size = 0 我将 RecyclerView 设置为 GONE 和 LinearLayout 设置为 VISIBLE。我遇到的问题:我的活动清单中的adjustResize 不适用于此活动中的片段 - 占位符仍在键盘下方一半。我在没有 Fragment 的 Activity 中做了同样的事情,我唯一做的事情是在 Activity Manifest 中设置 adjustResize。 Fragment如何处理这个问题?
UPD:嗯,我找到了调整 Fragment 大小的解决方案 - 我在 Activity 的根元素中添加了 fitSystemWindows=true - 但它破坏了我的状态栏...
【问题讨论】:
标签: android android-fragments resize fragment window-soft-input-mode