- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前有一个 MainActivity.java,它应该是唯一的 Activity 类。虽然在那个 Activity 类中我有一个抽屉导航链接到其他 fragment View 。
目前我面临的主要问题是在 fragment 下实现选项卡并使它们仅可用于该 fragment 和子 fragment 。我运行了我的应用程序并出现了选项卡,但在我访问 TeamsAndDriversFragment 后它们也出现在其他 fragment 上。
在我的 MainActivity.java 中,我有以下函数,它有助于指向当有人在抽屉导航中单击它们时它将生成的 fragment :
/**
* Diplaying fragment view for selected nav drawer list item
* */
private void displayView(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new TimeAndScoringFragment();
break;
case 1:
fragment = new ScheduleFragment();
break;
case 2:
fragment = new StandingsFragment();
break;
case 3:
fragment = new TeamsAndDriversFragment();
break;
case 4:
fragment = new NewsFragment();
break;
default:
break;
}
if (fragment != null) {
// Create a fragment transaction object to be able to switch fragments
FragmentTransaction transaction = getFragmentManager().beginTransaction();
// Replace whatever is in the fragment container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.frame_container, fragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
这是我当前的 TeamsAndDriversFragment 类,其中我有一个带有选项卡的操作栏导航:
public class TeamsAndDriversFragment extends Fragment implements TabListener {
private List<Fragment> fragList = new ArrayList<Fragment>();
@Override
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
ActionBar bar = getActivity().getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab mTeamsTab = bar.newTab();
mTeamsTab.setText("Teams");
mTeamsTab.setTabListener(this);
bar.addTab(mTeamsTab);
Tab mDriversTab = bar.newTab();
mDriversTab.setText("Drivers");
mDriversTab.setTabListener(this);
bar.addTab(mDriversTab);
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
Fragment f = null;
TabFragment tf = null;
if(fragList.size() > tab.getPosition()) {
fragList.get(tab.getPosition());
}
if(f == null) {
tf = new TabFragment();
Bundle data = new Bundle();
data.putInt("idx", tab.getPosition());
tf.setArguments(data);
fragList.add(tf);
} else {
tf = (TabFragment) f;
}
ft.replace(android.R.id.content, tf);
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if(fragList.size() > tab.getPosition()) {
ft.remove(fragList.get(tab.getPosition()));
}
}
}
最佳答案
在 displayView()
方法中,只需从 ActionBar
中删除所有选项卡,这样您将始终拥有一个干净的 ActionBar
TeamsAndDriversFragment
fragment 的异常:
private void displayView(int position) {
getSupportActionBar().removeAllTabs();
// ...
}
关于java - 让 Actionbar 标签贴在 Fragment 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20981626/
我在获取附加 Bootstrap 导航栏以在页面滚动时正确调整其宽度时遇到问题。 我希望导航栏在页面滚动时保持其包含元素内部的宽度,或者占据页面的整个宽度(从左到右开始) 我做错了什么,或者我需要做什
所以我正在尝试创建一个布局,其中我有一个带有卡片的页面,右侧有一张摘要卡片,在我滚动时会 float 。一种典型的词缀对象,以前在 bootstrap 中见过。到目前为止,这是我的尝试: 出于某种原因
我是一名优秀的程序员,十分优秀!