您好,我有三个菜单项 默认显示在右侧。
我想在最左边显示一个菜单,在右边显示另外两个。
我的 Menu.xml 文件是这样的
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_version"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_version"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_refresh"
android:actionViewClass="android.support.v7.widget.RefreshView"
android:icon="@drawable/ic_refresh_holo_dark"
android:orderInCategory="100"
android:gravity ="left"
android:layout_gravity="left"
android:showAsAction="ifRoom|collapseActionView"
android:title="Refresh"/>
</menu>
我怎样才能将刷新菜单对齐到最左边,而其他菜单只对齐到右边。
最佳答案
最后我照做了。
我的自定义操作栏 xml 文件为
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="fill_horizontal"
android:background="@color/grey"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/imgrefresh"
android:layout_width="40dp"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:onClick="toggleMenu"
android:background="@drawable/img_refresh_click"
android:scaleType="centerInside"
android:src="@drawable/ic_refresh_holo_dark" />
<CustomEditText
android:id="@+id/txtSearchURL"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="0dp"
android:layout_toRightOf="@+id/imgrefresh"
android:background="@drawable/url_background"
android:drawableRight="@drawable/ic_stop_holo_dark"
android:focusableInTouchMode="true"
android:hint="@string/search_url_hint"
android:imeOptions="actionGo"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="@color/white" />
img_refresh_click
可绘制的位置为
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"><shape>
<gradient android:angle="270" android:endColor="#33819F" android:startColor="#33819F" />
</shape></item>
<item><shape>
<gradient android:angle="270" android:endColor="@android:color/transparent" android:startColor="@android:color/transparent" />
</shape></item>
现在在 onCreate() 方法中
ActionBar actionBar = getActionBar();
getActionBar().setDisplayShowHomeEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setBackgroundDrawable(new ColorDrawable(0xff353538));
// actionBar.setIcon(R.drawable.ic_action_search);
LayoutInflater inflator = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflator.inflate(R.layout.header, null);
actionBar.setCustomView(v);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
然后我的屏幕变成了我预期的样子
关于android - 如何对齐 ActionBar 中的菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24551997/