2017-03-05 91 views
0

的顺序我有这样的代码:安卓:除了片段

findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() 
    { 
     //Se aggiungo un fragment A al container X e aggiungo il fragment B allo stesso container, il fragment B andrà sopra 
     //il fragment A 
     @Override 
     public void onClick(View v) 
     { 
      FragmentManager fragmentManager = getSupportFragmentManager(); 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 

      if(ko==0) 
      { 
       MyFragment fragment = MyFragment.createFragment(0); 
       fragmentTransaction.add(R.id.formazione3,fragment); 
       ko++; 
      } 

      else if(ko==1) 
      { 
       MyFragment fragment = MyFragment.createFragment(1); 
       fragmentTransaction.add(R.id.formazione2,fragment); 
       ko++; 
      } 

      else if(ko==2) 
      { 
       MyFragment fragment = MyFragment.createFragment(2); 
       fragmentTransaction.add(R.id.moduli2,fragment); 
       ko++; 
      } 

      else if(ko==3) 
      { 
       MyFragment fragment = MyFragment.createFragment(1); 
       fragmentTransaction.add(R.id.moduli5,fragment); 
      } 

      fragmentTransaction.commit(); 
     } 
    }); 

嗯,我遇到另外的片段的顺序。我有4个片段,我不明白为什么一些片段,当我添加它们时,会在更大的片段下,而其他片段会放在它们容器中更大的片段上。

formazione3> formazione2(formazione2包含在formazione3) moduli2> moduli5(moduli5包含在moduli2,moduli2被包含在formazione3一部分)

当我添加第二个片段,它不显示,我认为它在前面的片段之下,所以它在更大的范围内。当我添加第三个片段时,它会部分在第一个片段下,第一个片段更大。当我添加第四个片段时,它会进入第三个片段,但第三个片段比第四个片段更大,并且最重要的是第四个片段包含在第三个片段中。它是如何工作的?我根本听不懂!

这是布局:

<RelativeLayout 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="com.example.utente.fantacalcio.FormazioniActivity" 
android:weightSum="1" 
android:id="@+id/activity_formazioni_layout"> 

<Button 
    android:text="Button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="12dp" 
    android:id="@+id/button2" /> 

<Button 
    android:text="Button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:id="@+id/button" /> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true"> 

    <RelativeLayout 
     android:layout_width="107dp" 
     android:layout_height="match_parent" 
     android:id="@+id/moduli"> 

    </RelativeLayout> 

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

    </RelativeLayout> 
</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="92dp" 
     android:layout_height="match_parent" 
     android:id="@+id/moduli1"> 

    </RelativeLayout> 

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

    </RelativeLayout> 
</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="71dp" 
     android:layout_height="match_parent" 
     android:id="@+id/moduli2"> 

    </RelativeLayout> 

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

    </RelativeLayout> 
</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="51dp" 
     android:layout_height="match_parent" 
     android:id="@+id/moduli3"> 

    </RelativeLayout> 

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

    </RelativeLayout> 
</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="29dp" 
     android:layout_height="match_parent" 
     android:id="@+id/moduli4"> 

    </RelativeLayout> 

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

    </RelativeLayout> 
</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="11dp" 
     android:layout_height="match_parent" 
     android:id="@+id/moduli5"> 

    </RelativeLayout> 

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

    </RelativeLayout> 
</LinearLayout> 

回答

1

你的父母布局是一个RelativeLayout,此布局的默认行为是第一个孩子的看法是最后一个子视图下。

在XML这个孩子:

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="51dp" 
     android:layout_height="match_parent" 
     android:id="@+id/moduli3"> 

    </RelativeLayout> 

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

    </RelativeLayout> 
</LinearLayout> 

是这样子视图下:

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="71dp" 
     android:layout_height="match_parent" 
     android:id="@+id/moduli2"> 

    </RelativeLayout> 

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

    </RelativeLayout> 
</LinearLayout> 

所以当意见膨胀,这是相反的formazione3超过formazione2。

而且你的LinearLayout具有以下属性:

android:layout_width="match_parent" 
android:layout_height="match_parent" 

所以他们把所有的地方可用。

尝试在dp中设置固定大小而不是match_parent来查看真正发生的情况。

希望这会有所帮助。

对不起,我英文很差。

+0

当你说“这是相反的formazione3是formazione2”我不明白。所以我必须改变xml文件中的相关布局的顺序吗? – Curio

+0

我的意思是formazione3是以上formazione2。是的,这是一个解决方案,它取决于你想要的最终结果。 – Cochi

+0

哦,是的,我明白了,我改变了xml文件中的相关布局的顺序!有用!但是,我故意放置了线性布局的宽度和高度值。我在哪里可以找到布局如何添加容器?例如,您说在相对布局中,订单会根据书写顺序而变化。 – Curio