[英]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.