【问题标题】:Android navigation icon alignment to rightAndroid导航图标向右对齐
【发布时间】:2016-10-12 15:55:20
【问题描述】:

这是我的工具栏:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar  xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="60dp"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="#2c3039"
    android:id="@+id/toolbar" >

    //some code here 

</android.support.v7.widget.Toolbar>

这是抽屉代码:

mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);

mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
    @Override
    public void onDrawerOpened(View drawerView) {
        super.onDrawerOpened(drawerView);
        getActivity().invalidateOptionsMenu();
    }

    @Override
    public void onDrawerClosed(View drawerView) {
        super.onDrawerClosed(drawerView);
        getActivity().invalidateOptionsMenu();
    }

    @Override
    public void onDrawerSlide(View drawerView, float slideOffset) {
        super.onDrawerSlide(drawerView, slideOffset);
        toolbar.setAlpha(1 - slideOffset / 2);
    }
};

mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerLayout.post(new Runnable() {
    @Override
    public void run() {
        mDrawerToggle.syncState();
    }
});

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) {
             mDrawerLayout.closeDrawer(Gravity.RIGHT);
        } else {
             mDrawerLayout.openDrawer(Gravity.RIGHT);
        }
    }
});

现在从右到左打开的抽屉只有一个问题,我怎样才能将图标的对齐方式也更改为右对齐?并将其颜色改为白色?

这是我目前的抽屉: My Drawer

【问题讨论】:

  • 我不确定你想要白色的哪一部分,但你可以使用EndDrawerToggle 中的toggleButton.setBackgroundColor() 和/或arrowDrawable.setColor() 来设置任何你想要的。

标签: android navigation toolbar


【解决方案1】:

使用带有 rtl 值的 layoutDirection:

android:layoutDirection="rtl"

如果它不起作用,请使用:

android:layout_gravity="right"

在您的 DrawerLayout 中:

tools:openDrawer="right"

也许像这样改变你的布局会更好:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:layoutDirection="rtl"
    tools:context=".activities.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay"
        app:elevation="0dp" >

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>


</android.support.design.widget.CoordinatorLayout>

【讨论】:

  • 使用android:layout_gravity="right"时未找到重力正确的抽屉视图
  • android:layout_gravity="right" 仍然在左边无效
猜你喜欢
  • 1970-01-01
  • 2022-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-08
  • 1970-01-01
相关资源
最近更新 更多