[英]navigation drawer bottom right icon android
我已经在我的应用程序中使用图标调整了导航抽屉,如图1所示,似乎没问题。 我希望谷歌地图的菜单右下方有图标。
码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
setupSlideMenu();
}
private void setupSlideMenu() {
mPlanetTitles = getResources().getStringArray(R.array.planets_array);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout1);
addIcon();
mDrawerList = (ListView) findViewById(R.id.left_drawer1);
// Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mPlanetTitles));
// Set the list's click listener
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
log("setupSlideMenu", false);
}
private void addIcon() {
mDrawerToggle = new ActionBarDrawerToggle(
this, /* host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description */
R.string.drawer_close /* "close drawer" description */
) {
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
}
};
// Set the drawer toggle as the DrawerListener
mDrawerLayout.setDrawerListener(mDrawerToggle);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Pass the event to ActionBarDrawerToggle, if it returns true, then it has handled the app icon touch event
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle your other action bar items...
return super.onOptionsItemSelected(item);
}
任何想法? 提前致谢!
使用BottomDrawerToggle 。 解决方案非常简单:
使用重力BOTTOM将ImageView
添加到android.R.id.content FrameLayout
通过将右/左边距设置为其可绘制宽度的一半的负值,使得ImageView
半可见。
已解析的内部资源action_bar_icon_vertical_padding
并将其用作图像视图的底部填充
int id = Resources.getSystem().getIdentifier("action_bar_icon_vertical_padding", "dimen", "android"); float padding = mActivity.getResources().getDimension(id);
创建SlidingDrawable
并计算如何在draw(Canvas canvas)
方法中抽屉滑入/滑出时动态隐藏drawable。 通过使用抽屉的可见像素量剪切Rect
来隐藏Drawable。
public void draw(Canvas canvas) { float pixelsVisible = mOffset * mMinusShadow; int target = (int) ((mWrapped.getIntrinsicWidth()/2)+pixelsVisible); if(mGravity == GravityCompat.START || mGravity == Gravity.LEFT) canvas.clipRect(target, 0, mWrapped.getIntrinsicWidth(), mWrapped.getIntrinsicHeight()); else canvas.clipRect(0, 0, mWrapped.getIntrinsicWidth() - target,mWrapped.getIntrinsicHeight()); this.mWrapped.draw(canvas); canvas.restore(); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.