[英]How to add fragment on click on Action Bar Tab
我正在為我的Android應用程序使用AppCompat庫。 我想補充一點,我已經做了,現在我不能上單擊添加片段操作欄標簽ActionBar Tabs
。 在下面的代碼中,我有兩個選項卡,單擊它們即可為片段充氣
任何想法嗎?
MainActivity.java
public class MainActivity extends ActionBarActivity implements ActionBar.TabListener {
private SearchView mSearchView;
private ActionBar mActionBar;
private Fragment mFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mActionBar = getSupportActionBar();
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// create first tab
ActionBar.Tab tab = mActionBar.newTab().setText("Free apps")
.setTabListener(this);
mActionBar.addTab(tab);
// create second tab
tab = mActionBar.newTab().setText("Paid apps")
.setTabListener(this);
mActionBar.addTab(tab);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
MenuItem searchItem = menu.findItem(R.id.action_bar_search);
mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_bar_search:
mSearchView.setIconified(false);
return true;
}
return false;
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
if (tab.getPosition() == 0) {
// first tab
} else {
// second tab
}
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
}
首先, 將此TabListener導入到您的項目中,而不是在Activity中實現ActionBar.TabListener
。 然后在布局activity_main
確保您有一個像這樣的片段容器
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
然后很容易,將標簽添加到操作欄,如下所示:
Tab tab1 = actionBar
.newTab()
...
.setTabListener(new SupportFragmentTabListener<CustomFragment>(R.id.container, this,
"first", CustomFragment.class));
如果您想了解更多信息,即如何設置標簽樣式,請點擊此處
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.