android-如何对齐操作栏菜单和导航抽屉

时间:2014-09-21 04:10:57

标签: android android-actionbar android-navigation

这些是我的菜单:

    <item
    android:id="@+id/search"
    android:icon="@drawable/ic_action_search"
    android:orderInCategory="2"
    android:title="@string/search"
    yourapp:showAsAction="always|withText"/>
<item
    android:id="@+id/newadd"
    android:icon="@drawable/ic_action_new"
    android:orderInCategory="3"
    android:title="@string/newadd"
    yourapp:showAsAction="always|withText"/>
<item
    android:id="@+id/sort"
    android:icon="@drawable/ic_action_sort_by_size"
    android:orderInCategory="1"
    yourapp:showAsAction="always"/>

当我运行应用程序时,其中所有3个都位于操作栏的右侧,如何让它们移动到操作栏的左侧?

另外,我是一个navigationDrawer,图标在左侧,我想将它移到右侧,我该怎么办?

我的动作栏上没有任何搜索。

我该怎么办?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以将自定义视图用于操作栏

ActionBar mActionBar = getActionBar();
View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
mActionBar.setCustomView(mCustomView);
mActionBar.setDisplayShowCustomEnabled(true);

actionbar xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="@dimen/activity_horizontal_margin" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/imageView1"
        android:paddingLeft="12dp"
        android:paddingRight="12dp"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/imageView2"
        android:paddingLeft="12dp"
        android:paddingRight="12dp"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>

为操作栏设置这些方法,使导航抽屉主页图标可见

  getActionBar().setBackgroundDrawable(
                    new ColorDrawable(Color.parseColor("#56B1D8"))); //$NON-NLS-1$
            LayoutInflater inflator = (LayoutInflater) this
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            ActionBar actionBar = getActionBar();
            getActionBar().setDisplayShowCustomEnabled(true);
            actionBar.setDisplayShowTitleEnabled(false);
            // actionBar.setDisplayUseLogoEnabled(false);
            actionBar.setDisplayHomeAsUpEnabled(true);
            actionBar.setDisplayUseLogoEnabled(false);
            actionBar.setDisplayShowHomeEnabled(false);
            // getActionBar().setIcon(R.drawable.ic_navigation_drawer);
            // navigation icon on actionbar
            actionBar.setHomeButtonEnabled(true);
            actionBar.setIcon(null);

答案 1 :(得分:0)

假设你是一个从右到左的读者,并试图支持这样的。对于整个应用程序,我相信它会从您设备的所选语言和区域设置中获取线索。从右到左强迫? IDK如何做到这一点,但是如你所描述的那样翻转动作栏我怀疑你正在做什么。

除此之外,请确保您使用startendleftright进行其他对齐。开始和结束都将尊重您的设备设置,其中左侧和右侧不会。