• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

使用ActionBarSherlock设置菜单项居中和全角

Android 来源:InverseFalcon 3次浏览

我试图显示一个带两个项目的操作栏,取消和保存,但是我希望这些菜单项横跨操作栏的整个长度,如下所示:使用ActionBarSherlock设置菜单项居中和全角

______________________________ 
|____Cancel____|____Save ____| 
|       | 
|       | 
|       | 
|       | 

所以基本上我需要一种方法来显示只有两个行动项目,居中,并跨越整个行动栏。

完成此操作的最简单方法是什么?我正在考虑使用自定义布局,但由于我还不熟悉如何使用操作栏和菜单,我不确定我如何能够做到这一点,并且仍然是菜单操作项目。

是否有某种造型解决方案?完成这个最好和最无痛的方法是什么?

编辑

因为这是我第一次去的动作条和自定义布局,我没有感受什么工作,什么是那根本行不通绝望愚蠢的做法。例如,设置自定义布局,这一点:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_gravity="center_horizontal"> 

    <item android:id="@+id/menu_item_cancel" 
      android:showAsAction="always" 
      android:title="Cancel"/> 

    <item android:id="@+id/menu_item_save" 
      android:showAsAction="always" 
      android:title="Save" /> 
</menu> 

导致通货膨胀例外,将无法正常工作,虽然其他人有更多的经验将rightaway知道这可不行,我留下笨拙约燃烧时间直到我能感觉到我的出路或有人指出我朝着正确的方向前进。

所以对于那些询问我所尝试过的东西,我会继续发帖,但期待大部分相同。

第二个尝试

获得一个ClassNotFoundException:未找到路径

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center_horizontal"> 

    <menu android:layout_gravity="center_horizontal"> 

     <item android:id="@+id/menu_item_cancel" 
       android:showAsAction="always" 
       android:title="Cancel"/> 

     <item android:id="@+id/menu_item_save" 
       android:showAsAction="always" 
       android:title="Save" /> 
    </menu> 

</LinearLayout> 

第三类 “android.view.menu” 尝试

这几乎工程,除我只看到每个按钮的上半部分。即使动作栏似乎有足够的空间让它正确绘制,下半部分也会被切断。

我也失去了行动项目造型,因为这些是正常的按钮,以及分频器。我更愿意找到一个使用原生动作项目的解决方案,因为它可以使整个应用程序中的其他动作条更容易风格化。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center_horizontal"> 

       <Button 
        android:id="@+id/cancel_btn" 
        android:layout_width="0dp" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:text="Cancel" /> 

       <Button 
        android:id="@+id/save_btn" 
        android:layout_width="0dp" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:text="Save" /> 
</LinearLayout> 

第四尝试

这一个是八九不离十。我正在浏览ActionBarSherlock演示项目,并注意到当使用分割菜单栏时,布局趋于居中。所以我回到了我一直使用的原始菜单,并添加了showAsAction ifRoom值。

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:id="@+id/menu_item_cancel" 
      android:showAsAction="ifRoom" 
      android:title="Cancel"/> 

    <item android:id="@+id/menu_item_save" 
      android:showAsAction="ifRoom" 
      android:title="Save"/> 
</menu> 

我也在清单将此添加到我的活动:

android:uiOptions="splitActionBarWhenNarrow" 

这给我确切的造型我想…但它在拆分操作栏。我想要在顶部,而不是在底部。在Android 2.2的模拟器上运行这个工程,但似乎将两个选项居中与文本长度成正比,所以取消区域大于保存区域。

如果有人知道一种方式来获得这个确切的样式,但在顶部的操作栏,这将解决一切。


===========解决方案如下:

似乎没有办法用原生动作条样式或选项来做到这一点。必须使用自定义视图,类似于我的第三次尝试,修改了样式和背景以模仿操作栏。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)