2012-02-17 9 views
20

enter image description hereमुख्य ActionBar में ActionBar आइटम और बॉटम बार

Google+ ऐप्लिकेशन एक लेआउट जहां यह मुख्य क्रिया पट्टी और नीचे में कार्रवाई बार आइटम नहीं है है जगह कैसे। वर्तमान में मैं नीचे बार में आइटम रखने के लिए android:uiOptions="splitActionBarWhenNarrow" का उपयोग कर रहा हूं। मैं ऊपर और नीचे दोनों वस्तुओं को कैसे रख सकता हूं?

+0

हाँ शीर्ष पर अतिप्रवाह आइकन दिखाने के लिए कैसे ??? – samirprogrammer

उत्तर

0

जब आपके पास शीर्ष बार में दिखाए जा सकने से अधिक आइटम होते हैं तो नीचे बार भर जाता है।

"अतिप्रवाह" तीन-बिंदुओं को दिखाने के बजाय आइटम को नीचे बार पर रखा जाएगा। एक्सएमएल में अपने मेनू आइटम पर

android:showAsAction="ifRoom|withText" 

का उपयोग करना याद रखें।

यहां अधिक पढ़ें: http://developer.android.com/guide/topics/ui/actionbar.html#SplitBar

+0

यह सही प्रतीत नहीं होता है। Google+ उदाहरण में, उनके पास शीर्ष पर ओवरफ़्लो आइकन भी है। – PolandSpring

+1

@kkshin यह एक कस्टम दृश्य है और डिफ़ॉल्ट विभाजन कार्रवाई बार नहीं है। – doorstuck

+0

मैंने कोशिश की लेकिन यह नीचे एक्शन बार में चला गया। – Timmmm

11

मैं मानक ActionBar का उपयोग कर नहीं लगता कि यह संभव है। एक विभाजित एक्शनबार सक्षम करते समय, सभी क्रियाएं एक संकीर्ण स्क्रीन पर नीचे दिखाई देंगी।

Google+ ऐप की "पोस्ट बनाएं" गतिविधि में निचला बार एक कस्टम कार्यान्वयन प्रतीत होता है। एक क्रिया के लेबल को काम नहीं करने के लिए लंबी प्रेस पर ध्यान दें, और जब आप लैंडस्केप ओरिएंटेशन पर स्विच करते हैं तो भी नीचे बार बना रहता है। स्थान वस्तु एक टॉगल स्विच है जो गैर-मानक एक्शनबार व्यवहार भी है।

26

आशा है कि मेरा उत्तर आपके लिए बहुत देर हो चुकी है।

  1. android:uiOptions="splitActionBarWhenNarrow" का उपयोग करें (यह सामान को बार में जोड़ता है)।
  2. नीचे दिए गए कोड की तरह नया लेआउट बनाएं (यह लेआउट शीर्ष बार पर आपके सभी आइटम को संभाल देगा)।

    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right" > 
    <Switch 
        android:id="@+id/switch1" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent"/> 
    <ImageButton 
        android:id="@+id/action_starred" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        style="?android:attr/actionButtonStyle" 
        android:src="@android:drawable/ic_menu_compass" 
        android:onClick="FakeMenu"/> 
    </LinearLayout> 
    
  3. अपनी गतिविधि में चिपकाएं

    ActionBar actionBar = getActionBar();    
    actionBar.setCustomView(R.layout.actionbar_top); //load your layout 
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME|ActionBar.DISPLAY_SHOW_CUSTOM); //show it 
    
  4. है बस इतना ही :)

+0

आपने मुझे बहुत मदद की, धन्यवाद! ActionBarSherlock lib का उपयोग करने वालों के लिए छोटी टिप्पणी - आप getSherlock() के साथ अपना एक्शन बार ऑब्जेक्ट प्राप्त कर सकते हैं। GetActionBar()। – lopek

+0

नीचे के बजाय शीर्ष पर प्रवाह मेनू को कैसे दिखाया जाए ???? – samirprogrammer

2

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

Bottom ActionBar Example

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_alignParentTop="false" 
     android:layout_above="@+id/footer"> 

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:id="@+id/container" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:paddingLeft="@dimen/body_padding_large" 
      android:paddingRight="@dimen/body_padding_large" 
      android:paddingTop="@dimen/body_padding_medium" 
      android:paddingBottom="@dimen/body_padding_medium" 
      android:gravity="top"> 

     </LinearLayout> 

    </ScrollView> 
    <LinearLayout android:id="@+id/footer" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:layout_alignParentBottom="true" 
     style="@android:style/ButtonBar"> 
     <Button android:id="@+id/btn_1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Button 1" /> 

     <Button android:id="@+id/btn_2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Button 2" /> 
    </LinearLayout> 
</RelativeLayout> 
0
<?xml version="1.0" encoding="utf-8"?> 

< LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right" > 

<Switch 
    android:id="@+id/switch1" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent"/> 

<ImageButton 
    android:id="@+id/action_starred" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    style="?android:attr/actionButtonStyle" 
    android:src="@android:drawable/ic_menu_compass" 
    android:onClick="FakeMenu"/> 

</LinearLayout> 









//Then put these lines of code in your java class or activity 

    ActionBar actionBar = getActionBar();    
    actionBar.setCustomView(R.layout.actionbar); //load your layout 
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME|ActionBar.DISPLAY_SHOW_USTOM); //show it 

// उम्मीद है कि इस मदद करता है

+0

उस स्थिति में और यदि आपके पास अधिकार हैं, तो आप उस उत्तर को वोट दे सकते हैं (अगर टिप्पणी की आवश्यकता नहीं है)। हालांकि अगर आपको समस्या को हल करने का एक वैकल्पिक तरीका मिल गया है, तो साझा करने के लिए स्वतंत्र महसूस करें। – TocToc

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