2014-11-18 23 views
18

मेरे पास नेविगेशन ड्रॉवर के साथ एक गतिविधि है जो गतिविधि पर main_fragment_container को प्रतिस्थापित करती है। जब टुकड़ों में से एक प्रदर्शित होता है तो मैं टूलबार के लेआउट को बदलना चाहता हूं और इसमें एक स्पिनर जोड़ना चाहता हूं (और जब खंड छिपा हुआ है तो उसे हटा दें)।प्रदर्शित खंड के अनुसार टूलबार लेआउट को बदलें

मेरे लेआउट है कि तरह लग रहा है:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:sothree="http://schemas.android.com/apk/res-auto" 
android:id="@+id/main_parent_view" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:fitsSystemWindows="true"> 

<android.support.v7.widget.Toolbar 

    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    sothree:theme="@style/AppTheme.ActionBar" /> 

<android.support.v4.widget.DrawerLayout 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <!-- Main layout --> 
    <FrameLayout 
     android:id="@+id/main_fragment_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <!-- Nav drawer --> 
    <fragment 
     android:id="@+id/fragment_drawer" 
     android:name="com.idob.mysoccer.ui.DrawerFragment" 
     android:layout_width="@dimen/navigation_drawer_width" 
     android:layout_height="match_parent" 
     android:layout_gravity="left|start" /> 
</android.support.v4.widget.DrawerLayout> 

+0

यह टूलबार के नीचे दराज खोल देगा। [नेविगेशन ड्रॉवर को सामग्री डिजाइन में निर्दिष्ट किया गया है] (http://www.google.com/design/spec/patterns/navigation-drawer.html) टूलबार को ओवरलैप करने के लिए (लेकिन इस समय Google Play भी ऐसा नहीं करता है)। – Tapirboy

+0

मैंने इसे उद्देश्य पर किया, मेरे डिजाइन में दराज टूलबार पर होने पर अच्छा नहीं दिखता है। – Idob

उत्तर

39

सुनिश्चित नहीं हैं कि आप क्या हासिल करना लेकिन मुझे लगता है, यदि संभव हो, आपको यह बताने के टुकड़े अपनी उपकरण पट्टी अनुकूलित बजाय बदल कर भी इस संपर्क करना चाहिए कोशिश कर रहे हैं यह। आप अपनी आवश्यकताओं के आधार पर टूलबार पर अपने टुकड़े छुपा सकते/दिखा सकते हैं।

टुकड़े OnCreateView() में setHasOptionsMenu(true); जोड़ें और फिर ओवरराइड onOptionsMenuCreated()

इस तरह:

@Override 
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    setHasOptionsMenu(true); 
    return inflater.inflate(R.layout.result_list, container, false); 
} 

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.this_frag_menu, menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

आप उदाहरण

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); का उपयोग कर प्राप्त कर सकते हैं आप उपकरण पट्टी के साथ और अधिक विशिष्ट काम करने की जरूरत है

+0

मेरे पास शीर्षक के बजाए स्पिनर के साथ एक शीर्षक और टूलबार के साथ दो अलग-अलग टूलबार, मानक टूलबार हैं। मैं सिर्फ स्पिनर के साथ टूलबार को दिखाना चाहता हूं जब मेरे टुकड़ों में से एक प्रदर्शित होता है। – Idob

+3

मैं अभी भी बदलने के बजाए टूलबार को संपादित करने की सिफारिश करता हूं। सक्रिय खंड के आधार पर अपने शीर्षक और स्पिनर छुपाएं/दिखाएं। – Tapirboy

+0

एक टूलबार का कार्यान्वयन अच्छा काम करता है! धन्यवाद कृपया अपना उत्तर संपादित करें और मैं इसे उत्तर के रूप में चिह्नित करूंगा – Idob

संबंधित मुद्दे