使用的库:
- https://github.com/SimonVT/android-menudrawer https://github.com/SimonVT/android-menudrawer
- https://github.com/JakeWharton/ActionBarSherlock https://github.com/JakeWharton/ActionBarSherlock
- https://github.com/JakeWharton/Android-ViewPagerIndicator https://github.com/JakeWharton/Android-ViewPagerIndicator
问题:
我一直在尝试在菜单抽屉上实现类似于 YouTube/Beautiful Widget 应用程序的突出显示,但我不知道应该如何解决该问题。
下面我给了我的 aprproche 一个示例,我不确定它是否是实现这样的事情的正确方法:
这是我创建的菜单抽屉 Adaptervew.click lisner:
private AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
mPreviousView=mActiveView;
mActiveView=view;
mActivePosition = position;
// mDrawer.setActiveView(view, position);
TextView txtview=(TextView)mActiveView;
txtview.setBackgroundResource( R.drawable.abs__cab_background_top_holo_dark);
// mDrawer.closeMenu();
}
};
所以基本上我在这里尝试做的是在当前选定的视图上使用 .9 图像!
我想知道是否有更系统或更好的方法来做同样的事情!
我想要实现的截图如下::
这是我突出显示当前菜单项的解决方案:
1) 公开 NavDrawer 活动的最后一个选择抽屉位置:
public class NavDrawerBaseActivity extends Activity {
public static int LAST_DISPLAY_POSITION = 0;
private void displayView(int position) {
LAST_DISPLAY_POSITION = position;
Fragment fragment = null;
switch (position) {
case 0:
fragment = new ProgressPageFragment();
break;
// ..
default:
break;
}
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
// .. update selected item and title, then close the drawer
}
然后第 2 步,在适配器类中引用该值:
public class NavDrawerListAdapter extends BaseAdapter {
// ..
@Override
public View getView(int position, View convertView, ViewGroup parent {
TextView txtTitle = (TextView) convertView.findViewById(R.id.title);
if (position == NavDrawerActivity.LAST_DISPLAY_POSITION) {
txtTitle.setTextColor(Color.WHITE);
}
else
txtTitle.setTextColor(Color.BLACK);
// .. etc ..
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)