FragmentTransaction正在改变被调用的replace()的顺序

时间:2016-12-10 16:22:57

标签: android android-fragments

我有一个主要的LinearLayout,有两个孩子。其中一个是片段,另一个是Linearlayout,它有自己的子元素。当我打电话给X_new < xmax时,这2个孩子会改变位置。位于顶部的片段现在位于底部。我该如何解决这个问题?

我的xml代码:

fragmentTransaction.replace(R.id.mainLayout, fragment);
fragmentTransaction.commit();

编辑: 添加了一些Java代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<fragment
    android:name="mojavozacka.testovi_za_vozacka_dozvola.Znaci2Fragment"
    android:layout_width="match_parent"
    android:layout_height="0px"
    android:layout_weight="1"></fragment>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="@drawable/buttonshape"
    android:orientation="horizontal">

    <HorizontalScrollView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1">

        <LinearLayout
            android:id="@+id/linearLayoutAppbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

        </LinearLayout>
    </HorizontalScrollView>

    <ImageView
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:src="@drawable/s202_background" />
</LinearLayout>

单击片段中的视图并更改片段视图时调用的某个方法。

FragmentManager fragmentManager;
FragmentTransaction fragmentTransaction;
@Override
public void onCreate(Bundle b)
{
    super.onCreate(b);
    setContentView(R.layout.test_layout);

    fragmentManager = getFragmentManager();
    fragmentTransaction = fragmentManager.beginTransaction();
...

1 个答案:

答案 0 :(得分:0)

而不是这个,

<fragment
    android:name="mojavozacka.testovi_za_vozacka_dozvola.Znaci2Fragment"
    android:layout_width="match_parent"
    android:layout_height="0px"
    android:layout_weight="1"></fragment>

添加容器,

<RelativeLayout android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/fragment_container"/>

然后用片段替换容器

fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();