我想用右边的按钮创建一个带有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>
Run Code Online (Sandbox Code Playgroud)
这是我的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>
Run Code Online (Sandbox Code Playgroud)
另一种快速而干净的方法是为该菜单按钮指定您自己的布局。像这样的东西
<menu 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"
tools:context="com.example.MainActivity">
<item
android:id="@+id/action_custom_button"
android:title="Custom Button"
android:icon="@drawable/ic_custom_button"
app:actionLayout="@layout/layout_to_custom_button"
app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)
应该有
layout_to_custom_button.xml
布局文件,其中包含您想要的填充和样式。
并在您的活动中为点击事件执行此操作
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_product_detail, menu);
final Menu mMenu = menu;
final MenuItem item = menu.findItem(R.id.action_custom_button);
item.getActionView().setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
mMenu.performIdentifierAction(item.getItemId(), 0);
}
});
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3561 次 |
| 最近记录: |