android - एक्शनबार में टैब्स की सेना का पतन



android-tabhost android-actionbar (1)

ऐसा करने के लिए प्रतिबिंब 'हैक' है मैं समाधान के लिए कोई क्रेडिट नहीं लेता है, जिसे मैंने इस स्टैक ओव्हरफ्लो प्रश्न में पाया है, जिसमें कस्टम व्यू के साथ एक्शनबैर टैब को दोहराया गया है

//pre-ICS
if (actionBarSherlock instanceof ActionBarImpl) {
    enableEmbeddedTabs(actionBarSherlock);

//ICS and forward
} else if (actionBarSherlock instanceof ActionBarWrapper) {
    try {
        Field actionBarField = actionBarSherlock.getClass().getDeclaredField("mActionBar");
        actionBarField.setAccessible(true);
        enableEmbeddedTabs(actionBarField.get(actionBarSherlock));
    } catch (Exception e) {
        Log.e(TAG, "Error enabling embedded tabs", e);
    }
} 

//helper method
private void enableEmbeddedTabs(Object actionBar) {
    try {
        Method setHasEmbeddedTabsMethod = actionBar.getClass().getDeclaredMethod("setHasEmbeddedTabs", boolean.class);
        setHasEmbeddedTabsMethod.setAccessible(true);
        setHasEmbeddedTabsMethod.invoke(actionBar, true);
    } catch (Exception e) {
        Log.e(TAG, "Error marking actionbar embedded", e);
    }
}

यह भी देखें ब्लॉग पोस्ट: http://sparetimedev.blogspot.co.uk/2012/11/forcing-embedded-tabs-in-actionbar.html

ActionBarSherlock पुस्तकालय का उपयोग करके, मैं एक एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं। एक गतिविधि में, मैं एक संक्षिप्त ActionBar (निचले तल पर कार्रवाई आइटम) के साथ संयोजन में एक टैबिड नेविगेशन का उपयोग करता हूं।

इस तस्वीर में आप Activity को अपने वर्तमान स्थिति में देख सकते हैं: टैब को दूसरी पंक्ति में धकेल दिया जा रहा है।

निम्न चित्र में आप Activity को जिस प्रकार से मैं करना चाहते हैं, उसे देख सकते हैं: टैब शीर्ष पंक्ति में होनी चाहिए, दूसरी पंक्ति में नहीं। मैंने पहले ही ActionBar और ActionBarSherlock दस्तावेज़ पढ़ा है, लेकिन इस व्यवहार को बल देने के लिए कोई रास्ता नहीं मिला।

यह वर्तमान कोड है, जो ActionBar बनाने के लिए उपयोग किया जाता है।

public class AdminActivity extends SherlockFragmentActivity {

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

    ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    ActionBar.Tab itemsTab = actionBar.newTab().setText(R.string.label_tab_items);
    ActionBar.Tab usersTab = actionBar.newTab().setText(R.string.label_tab_users);

    actionBar.addTab(itemsTab);
    actionBar.addTab(usersTab);
}

कोई विचार?