我正在尝试使用ActionBarSherlock在操作栏中通过调整找到的代码here来实现取消/完成布局。
所有内容都按照预期在ICS或Jelly Bean上运行(ABS将使用本机ActionBar)。在Gingerbread(API 10)上进行测试时,除了按钮之间没有显示分隔符外,一切正常:
我起初认为这是分频器图像的问题,但即使使用如下代码:
android:divider="#f00"
Gingerbread上没有出现分隔符,但正如预期的那样,在ICS / JB上出现了一个鲜红色的分隔符。显然,ActionBarSherlock 3.5+使用原生行为进行分隔符外观,那么为什么在使用ABS时分隔符不会出现,而是在使用原生ActionBar时出现?
这是我的XML:
actionbar_custom_view_done_discard.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="?attr/dividerVertical"
android:dividerPadding="12dp"
android:orientation="horizontal"
android:showDividers="middle" >
<include layout="@layout/actionbar_cancel_button" />
<include layout="@layout/actionbar_done_button" />
</LinearLayout>
actionbar_cancel_button.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/actionbar_cancel"
style="?actionButtonStyle"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/abs__item_background_holo_light" >
<TextView
style="?actionBarTabTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawableLeft="@drawable/ic_action_cancel"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:paddingRight="20dp"
android:text="@string/action_cancel" />
</FrameLayout>
actionbar_done_button.xml 与上述内容完全相同,但名称,文字和图标已更改。
提前致谢。
答案 0 :(得分:6)
LinearLayout
中的分隔符是API 11+。这与ActionBarSherlock无关。
您只需在两个元素之间添加一个背景的1dp视图即可解决此问题。
答案 1 :(得分:1)
我发现这是自定义ActionBar
布局的最佳实现:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<include layout="@layout/actionbar_cancel_button" />
<!-- View below is used because the android:divider attribute only works on API 11+. This is identical in appearance to that. -->
<View
style="@style/Widget.Sherlock.Light.ActionButton"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginBottom="12dp"
android:layout_marginTop="12dp"
android:background="@drawable/abs__list_divider_holo_light" />
<include layout="@layout/actionbar_done_button" />