2013-08-06 124 views
0

在我第一次更改应用程序中片段的可见性时,片段显示的不是我设置显示的片段。Android - 隐藏/显示片段显示错误的片段

我的布局:

<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/act_main_frag_top_bar" 
    class="br.com.myapp.fragments.TopBarFragment" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"/> 

<fragment 
    android:id="@+id/act_main_frag_toolbar" 
    class="br.com.myapp.fragments.ToolbarFragment" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"/> 

<!-- Tabs -->  
<fragment 
    android:id="@+id/act_main_frag_twitter" 
    class="br.com.myapp.fragments.TwitterFragment" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:visibility="gone"/> 

<fragment 
    android:id="@+id/act_main_frag_facebook" 
    class="br.com.myapp.fragments.FacebookFragment" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:visibility="gone"/> 

<fragment 
    android:id="@+id/act_main_frag_tv_show" 
    class="br.com.myapp.fragments.TVShowFragment" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:visibility="gone"/> 

<fragment 
    android:id="@+id/act_main_frag_info" 
    class="br.com.bluepen.mixtv.fragments.InfoFragment" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:visibility="gone"/> 

<fragment 
    android:id="@+id/act_main_frag_streaming" 
    class="br.com.myapp.fragments.StreamingFragment" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:visibility="gone"/> 

</LinearLayout> 

而且myActivity:

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

    FragmentManager manager = getSupportFragmentManager(); 
    mStreamingFrag = (StreamingFragment) manager.findFragmentById(R.id.act_main_frag_streaming); 
    mFacebookFrag = (FacebookFragment) manager.findFragmentById(R.id.act_main_frag_facebook); 
    mTwitterFrag = (TwitterFragment) manager.findFragmentById(R.id.act_main_frag_twitter); 
    mTVShowFrag = (TVShowFragment) manager.findFragmentById(R.id.act_main_frag_tv_show); 
    mInfoFrag = (InfoFragment) manager.findFragmentById(R.id.act_main_frag_info); 
    mToolbar = (ToolbarFragment) manager.findFragmentById(R.id.act_main_frag_toolbar); 
    mToolbar.setListener(this); 

    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
    transaction.show(mStreamingFrag); 
    transaction.commit(); 
} 

中的onCreate后,片段越来越表现为TwitterFragment,而不是StreamingFragment我设置在最后的展现onCreate方法。

回答

4

我发现这个问题,我改变了隐藏onCreate中的所有片段。 Aparentelly的android:可见性=“走了”在xml没有这样做。

这里是的onCreate的代码:

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

    FragmentManager manager = getSupportFragmentManager(); 
    FragmentTransaction transaction = manager.beginTransaction(); 

    mStreamingFrag = (StreamingFragment) manager.findFragmentById(R.id.act_main_frag_streaming); 
    transaction.show(mStreamingFrag); 
    mFacebookFrag = (FacebookFragment) manager.findFragmentById(R.id.act_main_frag_facebook); 
    transaction.hide(mFacebookFrag); 
    mTwitterFrag = (TwitterFragment) manager.findFragmentById(R.id.act_main_frag_twitter); 
    transaction.hide(mTwitterFrag); 
    mTVShowFrag = (TVShowFragment) manager.findFragmentById(R.id.act_main_frag_tv_show); 
    transaction.hide(mTVShowFrag); 
    mInfoFrag = (InfoFragment) manager.findFragmentById(R.id.act_main_frag_info); 
    transaction.hide(mInfoFrag); 

    transaction.commit(); 
} 

我不`吨知道我是否可以设置在XML隐藏片段。

1

我有2个按钮(button1和button2)相同的问题,当我不得不隐藏第一个按钮,第二个隐藏,第一个什么也没做......我做的一切都是CTRL + C xml和CTRL + V回来...希望它的作品...

+0

我找到了问题。检查我的答案吼叫。 – jonathanrz

+0

对不起,我之前没有看到......这几乎就是我在说的! :-) – user2606414