Sherlock Actionbar定制设计

时间:2012-08-09 06:00:12

标签: android android-actionbar actionbarsherlock styling

如果有人能帮我找到有关自定义sherlock操作栏的详细信息,我将非常感谢。

更具体一点:我需要一个带有四个按钮的操作栏。条形两侧的两个小按钮(左侧和右侧第二个),以及条形中间的一个“配对”单选按钮。 当我说“配对”时,我的意思是在iOS中,当有两个按钮彼此靠近时,当我按下一个时 - 第二个是未按下的,反之亦然。 总而言之,它应该是这样的。

teoretical actionbar sherlock

甚至可以做到这一点,或者我应该忘记使用美妙的sherlock生物?

2 个答案:

答案 0 :(得分:6)

我个人会放弃使用ActionBarSherlock的想法,而只是使用自己的布局资源来实现它。

作为ActionBarSherlock的用户,我可以说它是一个非常棒的库,因为它实际上允许您在所有设备上使用ActionBar API,包括pre-Honeycomb,这意味着您不必编写单独的UI以适应预先蜂窝装置。但ActionBarSherlock的意思是它只提供与本机ActionBar相同的API。问题在于,ActionBar在创造性地使用它时具有限制性,因为它旨在提供特定的功能和控制,以适应Google希望您实现UI的方式。简而言之,您可以指定显示在栏内某处的自定义布局View。您还可以控制哪些菜单项显示为放置在栏右侧的操作项(尽管最终仍然取决于系统,基于屏幕空间,如果这些项在栏上可见)。该栏还允许您实现一些非常特殊的功能(操作视图,操作提供程序等)

但是如果你想创建一个非常自定义的布局,就像你想象的那样,你不需要ActionBar(或ActionBarSherlock)提供的特殊功能,那么你可能最好从头开始做。

答案 1 :(得分:0)

是的,你可以让你的Sherlock ActionBar如上所示。您必须将自定义视图设置为SherLock ActionBAr。只需几行代码

   getSupportActionBar()
            .setDisplayShowCustomEnabled(true);
   getSupportActionBar().setCustomView(
            R.layout.your_custom_layout);

你自定义布局应该像这样的RelativeLayout

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

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:src="@drawable/icon" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" >

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:src="@drawable/icon" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentRight="true"
            android:src="@drawable/icon" />
    </LinearLayout>
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:src="@drawable/icon" />
</RelativeLayout>