Android解决Fragment使用replace方法重叠问题

来源:互联网 发布:ping 用的是哪个端口 编辑:程序博客网 时间:2024/04/26 11:13

Android解决Fragment使用replace方法重叠问题


今天在使用Fragment进行replace切换的时候,发现居然没反应:
布局是这样的

<LinearLayout 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"              android:orientation="vertical"              tools:context=".MainActivity"    >    <fragment        android:id="@+id/top"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"        android:name="com.xieth.as.fragment_one.TopFragment"        />    <LinearLayout        android:id="@+id/center_layout"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="6"        >        <fragment            android:id="@+id/center"            android:name="com.xieth.as.fragment_one.CenterFragment"            android:layout_width="match_parent"            android:layout_height="match_parent"            />    </LinearLayout></LinearLayout>

切换代码是这样的

        AnotherFragment anotherFragment = new AnotherFragment();        FragmentManager fragmentManager = getFragmentManager();        android.app.FragmentTransaction transaction = fragmentManager.beginTransaction();        transaction.replace(R.id.center_layout, anotherFragment);        transaction.commit();

代码是没有问题的,其实问题就出现在LinearLayout,必须把LinearLayout改成FrameLayout,这样就有效果了,不过会有一个情况,就是重叠了。
这里写图片描述


解决方案
在相应的Fragment布局里面设置background即可

android:background="@android:color/background_light"

center.layout

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:background="@android:color/background_light"              android:orientation="vertical"    >    <TextView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:gravity="center"        android:text="使用Fragment做主面板"        android:textColor="@android:color/background_dark"        android:textSize="15sp"        /></LinearLayout>

another.layout

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:background="@android:color/background_light"              android:orientation="vertical"    >    <TextView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:gravity="center"        android:text="Another Fragment"        android:textColor="@android:color/background_dark"        android:textSize="15sp"        /></LinearLayout>

这里写图片描述


这样就行了

0 0