相关疑难解决方法(0)

Android替换片段仍会显示一些被替换的片段

我有一个标签,其中包含带有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)

我的代码替换搜索片段: …

android android-fragments

15
推荐指数
3
解决办法
2万
查看次数

片段在背景可看见

我正在处理一个包含三个片段的应用程序,这些片段在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.那么,我不想要这个.

android android-fragments

5
推荐指数
1
解决办法
4893
查看次数

标签 统计

android ×2

android-fragments ×2