目前我正在为我的应用设计用户界面。我想实现滑动菜单和操作栏标签功能。我能够做到这一点,但我遇到了一个小问题 - 滑动菜单应该在片段之上,但在我的情况下它是相反的。
片段
打开菜单(片段叠加层)
以下是我用来制作标签的代码:
List<Fragment> fragList = new ArrayList<Fragment>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (int i=1; i <= 3; i++) {
Tab tab = bar.newTab();
tab.setText("Tab " + i);
tab.setTabListener(this);
bar.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);
return true;
}
@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()));
}
}
滑块参数值:
mSlidingPanel = (SlidingPaneLayout) findViewById(R.id.SlidingPanel);
mSlidingPanel.setPanelSlideListener(panelListener);
mSlidingPanel.setParallaxDistance(200);
mListView = (ListView) findViewById(R.id.MenuList);
TitleText = (TextView)findViewById(android.R.id.title);
ListAdapter listAdapter = new CustomListAdapter(MixingSolutionsTransition.this , R.layout.custom_list , mList);
mListView.setAdapter(listAdapter);
getActionBar().setDisplayShowHomeEnabled(true);
getActionBar().setHomeButtonEnabled(true);
appImage = (ImageView)findViewById(android.R.id.home);
TabFragment:
public class TabFragment extends Fragment {
private int index;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle data = getArguments();
index = data.getInt("idx");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment, null);
TextView tv = (TextView) v.findViewById(R.id.msg);
tv.setText("Fragment " + (index + 1));
return v;
}
}
我在网上找不到任何类似的问题。我该怎么办?
答案 0 :(得分:0)
在您的代码中,您已将标签创建为ActionBar.NAVIGATION_MODE_TABS
这意味着您希望选项卡成为操作栏的一部分,该操作栏将指示您所在的选项卡,
因此导航抽屉已将自身调整为位于标签下方(现在标签是操作栏的一部分)。
如果将抽屉布局提升到布局的根部,然后导航抽屉将显示在操作栏上,您可以做什么。在这种情况下,您将在操作栏上方显示选项卡和导航抽屉