मैंने कई बार टुकड़े और टैब के साथ एक्शनबार शेरलॉक किया है और यह अद्भुत काम कर रहा है।
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.android.wifilogger.R;
public class WifiTabListener implements ActionBar.TabListener {
public Fragment fragment;
public MainTabActivity act;
public WifiTabListener(Fragment fragment, MainTabActivity act) {
this.fragment = fragment;
this.act = act;
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.replace(R.id.root, fragment);
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(fragment);
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
}
और अपने TabActivity की स्थापना:
public class MainTabActivity extends SherlockFragmentActivity {
public ActionBar actionBar;
private ActionBar.Tab listTab;
public MenuItem refreshItem;
private SherlockFragment listFragment;
private SherlockFragment mapFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// getActionBar().setDisplayHomeAsUpEnabled(true);
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
setContentView(R.layout.main);
ActionBar.Tab settingsTab = actionBar.newTab().setText("Settings")
.setTag("settings");
listTab = actionBar.newTab().setText("Wifi List")
.setTag("list");
ActionBar.Tab mapTab = actionBar.newTab().setText("Map").setTag("map");
SherlockFragment settingsFragment = new SettingsFragment();
listFragment = new WifiListFragment();
mapFragment = new WifiMapFragment();
settingsTab.setTabListener(new WifiTabListener(settingsFragment, this));
listTab.setTabListener(new WifiTabListener(listFragment, this));
mapTab.setTabListener(new WifiTabListener(mapFragment, this));
actionBar.addTab(listTab,false);
actionBar.addTab(mapTab,false);
actionBar.addTab(settingsTab,false);
actionBar.selectTab(listTab);
}
आप कहाँ है अपने खुद के टुकड़े करने के लिए SettingsFragment, MapFragment और ListFragment बदलने के लिए
आप एक TabListener की जरूरत है। आप setTargetFragment का उपयोग करके इस टैबफैगमेंट में से एक में डायलॉगफ्रैगमेंट भी जोड़ सकते हैं लेकिन यह मेरा प्रश्न नहीं है।
स्रोत
2012-10-31 15:10:00
लेकिन क्या दृश्य पेजर के साथ बैक स्टैक में टुकड़े जोड़ने का कोई तरीका है? अभी मैं प्रत्येक टैब के लिए अपने स्वयं के टुकड़े वापस ढेर का प्रबंधन कर रहा हूं। – meh
मेरे पास ऐसा कोई मामला नहीं है। मुझे लगता है कि यह अत्यधिक निर्भर करता है कि आप बैकस्टैक कैसे व्यवहार करना चाहते हैं। यदि आप केवल टैब के भीतर इतिहास रखना चाहते हैं तो आप परिवर्तन पृष्ठ ईवेंट के लिए पंजीकरण कर सकते हैं और बैकस्टैक साफ़ कर सकते हैं। यदि आप बैक बटन को अन्य टैब में वापस लाने के लिए चाहते हैं तो यह निश्चित रूप से अधिक जटिल हो जाता है। लेकिन देशी टैब का उपयोग करके यह आसान नहीं होना चाहिए। – stoilkov
क्या आप कृपया अपने उत्तर में ViewPagerIndicator को लागू करने के कुछ बुनियादी उदाहरण जोड़ सकते हैं? और 2.2 और पुराने पुराने एंड्रॉइड संस्करणों पर काम करने के लिए मुझे किस पैकेज का उपयोग करने की आवश्यकता है। – meh