我想用右边的按钮创建一个带有margin_right的操作栏。像这样 我使用动作按钮来完成它。但按钮在右边没有margin_right。 android:layout_marginRight在这里不起作用。
这是我的styles.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarSize">50dp</item>
<item name="android:actionBarStyle">@style/my_actionbar_style</item>
<item name="android:actionButtonStyle">@style/my_action_button</item>
</style>
<style name="my_actionbar_style" parent="android:Widget.ActionBar">
<item name="android:background">@color/actionbar_backgroud</item>
<item name="android:titleTextStyle">@style/myTitleStyle</item>
<item name="android:displayOptions">showTitle</item>
</style>
<style name="myTitleStyle">
<item name="android:textColor">#ffffff</item>
<item name="android:textSize">20sp</item>
</style>
<style name="my_action_button">
<item name="android:background">@drawable/button_selector</item>
<item name="android:width">70dp</item>
<item name="android:textSize">13sp</item>
<item name="android:layout_marginTop">10dp</item>
<item name="android:layout_marginBottom">10dp</item>
<item name="android:layout_marginRight">10dp</item>
</style>
这是我的menu.xml:
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:ignore="AppCompatResource">
<item
android:id="@+id/action_search"
android:title="submit"
android:showAsAction="always" /></menu>
答案 0 :(得分:1)
我发现最简单的方法是在布局文件中创建自己的操作栏。然后,您可以通过让您的活动继承自覆盖setContentView的公共活动来使用它,您可以将视图放在包含该视图和操作栏的父视图中。您可以使用ActionMenuView(5.0+)模仿溢出的菜单行为。 例如,假设您有一个action_bar.xml,其中包含名为menuView的ActionMenuView:
class BaseActivity extends Activity {
...
ActionMenuView mMenuView;
...
@Override
protected void setContentView(int resId) {
LayoutInflater inflater = getLayoutInflater();
View actionBar = inflater.inflate(R.layout.action_bar, null);
View contentView = inflater.inflate(resId);
mMenuView = (ActionMenuView)actionBar.findViewById(R.id.menuView);
RelativeLayout parentLayout = new RelativeLayout(this);
LayoutParams actionBarLayout = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
actionBar.setLayoutParams(actionBarLayout);
parentLayout.addView(actionBar);
actionBar.setId(R.id.actionBar);
LayoutParams contentLayout = new LayoutParams(LayoutParams.MATCH_PARENT, 0);
contentLayout.addRule(RelativeLayout.BELOW, actionBar.getId());
contentLayout.addRule(RelativeLayout.ALIGN_WITH_PARENT_BOTTOM);
contentView.setLayoutParams(contentLayout);
parentLayout.addView(contentView);
setContentView(parentLayout);
}
}