Android 滑动菜单无法突出显示所选项目
我正在使用Android的SlidingMenu,我有一个“菜单片段”,如下所示:Android 滑动菜单无法突出显示所选项目,android,slidingmenu,Android,Slidingmenu,我正在使用Android的SlidingMenu,我有一个“菜单片段”,如下所示: public class MenuListFragment extends ListFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.la
public class MenuListFragment extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.list, null);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String[] items = getResources().getStringArray(R.array.menu);
ArrayAdapter<String> colorAdapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, items);
setListAdapter(colorAdapter);
getListView().setSelector(R.drawable.menu_selector);
}
@Override
public void onListItemClick(ListView lv, View v, int position, long id) {
Fragment newContent = null;
switch (position) {
case 0:
etc...
}
if (newContent != null)
switchFragment(newContent);
v.setSelected(true);
lv.setSelected(true);
}
private void switchFragment(Fragment fragment) {
if (getActivity() == null)
return;
MainActivity activity = (MainActivity) getActivity();
activity.switchContent(fragment);
}
}
在这种情况下,它可以工作,但我没有感觉到有一个
菜单选择器.xml
甚至调用super.onActivityCreated(savedInstanceState)都不会切换代码>这是我在应用程序中所做的:
final Class<?> currentClass = getActivity.getClass();
switch (position) {
case 0: //Menu
cls = MainNavigationActivity.class;
if (currentClass.equals(cls)) {
view.setBackgroundColor(parent.getContext().getResources().getColor(R.color.selectedMenuBackground));
}
break;
}
final Class currentClass=getActivity.getClass();
开关(位置){
案例0://菜单
cls=MainNavigationActivity.class;
if(当前等级等于(cls)){
view.setBackgroundColor(parent.getContext().getResources().getColor(R.color.selectedMenuBackground));
}
打破
}
菜单初始化后,检查您已初始化的类别,并根据该类别更改BG颜色谢谢您的回复。请看我的答案,我还有疑问。谢谢。我不知道这是否是一个正确的方法,但这是唯一的解决方案,为欧洲议会服务。我在滑动菜单列表适配器的getView()中使用了它“在这种情况下,它可以工作,但我没有菜单选择器.xml的感觉”,菜单选择器帮助您创建反馈效果(触碰效果),但触摸菜单项后显示的菜单与用户触摸的菜单完全不同,它们没有链接,也不知道您加载的活动的任何信息,这就是为什么您必须手动更改颜色,至少我是这样理解的,我可能错了。
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/list_padding"
android:paddingRight="@dimen/list_padding"
android:choiceMode="singleChoice"/>
public class MenuListFragment extends ListFragment {
private View selectedView;
...
@Override
public void onListItemClick(ListView lv, View v, int position, long id) {
Fragment newContent = null;
switch (position) {
// stuff
}
if (selectedView != null) selectedView.setBackgroundColor(getResources().getColor(R.color.aqincolor));
v.setBackgroundColor(getResources().getColor(R.color.espresso));
selectedView = v;
if (newContent != null)
switchFragment(newContent);
}
...
}
final Class<?> currentClass = getActivity.getClass();
switch (position) {
case 0: //Menu
cls = MainNavigationActivity.class;
if (currentClass.equals(cls)) {
view.setBackgroundColor(parent.getContext().getResources().getColor(R.color.selectedMenuBackground));
}
break;
}