我有一个标签,其中包含带有searchview和listview的线性布局.当用户单击其中一个搜索结果时,我想将该布局替换为包含所选内容详细信息的另一个布局.
当我替换搜索片段时,只会替换布局的listview部分会发生什么; 搜索视图在屏幕上仍然可见并处于活动状态.
这是我的搜索布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/search_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<SearchView
android:id="@+id/public_calendar_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:iconifiedByDefault="false"
</SearchView>
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1.0"
android:choiceMode="singleChoice" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:gravity="center"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是详细布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/detail_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="vertical" >
<Space
android:layout_width="0dip"
android:layout_height="20dip"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal" >
<Space
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".1" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".8"
android:text="@string/label_Name" />
<Space
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".1" />
</LinearLayout>
.........
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我的代码替换搜索片段: …
我正在处理一个包含三个片段的应用程序,这些片段在XML文件中定义:
[HeaderFragment]
[MainFragment]
[FooterFragment]
Run Code Online (Sandbox Code Playgroud)
第一个屏幕启动三个片段,Header-和FooterFragment是静态的,因此不会更改内容.
MainFragment是一个初始菜单,带有按钮和透明背景(MenuFragment).当我单击菜单中的项目时,我将替换MenuFragment为新的片段(DetailsFragment),如下所示:
FragmentTransaction transaction = mFragmentManager.beginTransaction();
Fragment newFragment = new DetailFragment();
transaction.replace(R.id.content_container, newFragment);
transaction.addToBackStack(newFragment.getTag());
transaction.commit();
Run Code Online (Sandbox Code Playgroud)
在DetailFragment显示出来,当我按下回来,MenuFragment出现一切工作应该如何.
这是我的问题:
在我的内部DetailFragment,我有一个切换选项来过滤内容,这是一个按钮.单击此按钮时,将以与上述代码相同的方式DetailFragmentFiltered替换DetailFragment.唯一的区别是我没有将它添加到BackStack,因为在过滤并按下Back后..我仍然想要返回到MenuFragment.
当我单击过滤器按钮并按Back时,DetailFragment(或DetailFragmentFiltered)显示在我的后面MenuFragment.那么,我不想要这个.