即使使用replace()和白色背景,第二个片段仍然透明

时间:2018-07-02 16:30:55

标签: android android-fragments

我想从第一个片段中的按钮打开第二个片段。 这是我的主要活动:

public class MainActivity extends AppCompatActivity implements CategoryFragment.OnListFragmentInteractionListener {

MainActivityFragment mainActivityFragment;
CategoryFragment categoryFragment;
FragmentManager manager;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mainActivityFragment = new MainActivityFragment();
    categoryFragment = new CategoryFragment();

    manager = getFragmentManager();
    FragmentTransaction transaction = manager.beginTransaction();
    transaction.add(R.id.container_for_fragments,mainActivityFragment,"main_activity");
    transaction.commit();


    findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            FragmentTransaction transaction = manager.beginTransaction();
            transaction.replace(R.id.container_for_fragments, categoryFragment);
            transaction.addToBackStack(null);
            transaction.commit();
        }
    });
}


@Override
public void onListFragmentInteraction(DummyContent.DummyItem item) {
    Toast.makeText(this, String.valueOf(item.content), Toast.LENGTH_SHORT).show();
}

}

及其xml:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <include layout="@layout/content_main" />
</android.support.design.widget.CoordinatorLayout>

此XML包含主要片段的容器布局。 当第二个片段开始播放时,第一个片段仍然可见。 这是第二个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:background="@android:color/white"
    android:layout_height="match_parent"
    android:id="@+id/category_fragment"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/item_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/text_margin"
        android:textAppearance="?attr/textAppearanceListItem" />

    <TextView
        android:id="@+id/content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/text_margin"
        android:textAppearance="?attr/textAppearanceListItem" />
</LinearLayout>

我已经检查了有关该主题的其他主题,他们建议使用replace(),但该主题无效。他们还建议使用纯色作为背景,但这也不起作用。我已经读到,有可能不在XML中添加include而是以编程方式添加。没有设法做到这一点,因为我无法实现它。这是问题还是我做错了其他事情? 编辑:添加content_main.xml。这是“ container_for_fragments”:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container_for_fragments"
    android:name="com.example.fixxxer.zapperapp.MainActivityFragment"
    android:layout_width="match_parent"
    android:background="@android:color/white"
    android:layout_height="match_parent" />

所有这些代码均来自android基本活动。我所做的唯一更改是以编程方式添加了MainActivityFragment

0 个答案:

没有答案