Android ICS到JB Actionbar标签更改了要求

时间:2013-02-02 04:26:07

标签: android tabs android-actionbar android-4.0-ice-cream-sandwich android-4.2-jelly-bean

我有一个针对SDK 15,ICS 4.0.3的应用程序。我刚刚更新它指向4.1它打破了我的用户界面,并使它非常难看:

以下是API 15上的正常情况: Normal

这是16或17: Bad

我感觉这是因为Nexus 7使用手机UI而不是实际的平板电脑用户界面...有没有办法强制标签进入操作栏而不必使用像ActionBar sherlock或其他东西(如子类)?或者即使我可以使标签看起来不那么糟糕,也许如果他们有中心文字?现在按钮甚至没有match_parent。针对较低的SDK是否存在缺点(我现在不需要更高的价格)?我的应用程序仅在ICS或更高版本上运行。

1 个答案:

答案 0 :(得分:2)

我创建了像instagram操作栏一样的标签你可以查看我以前的答案以及我是如何做到的。我正在使用手机,我无法在我的笔记本电脑上发布代码。无论如何只是检查我以前的答案。稍后我会再次访问并发布代码。

编辑------

Edit here is the image :). 

InstaGram ActionBar + Bottom Bar

再次以最佳结果:)。你需要做的第一件事是 创建一个布局名称header.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="@dimen/action_bar_height"
    android:layout_gravity="top"
    android:baselineAligned="true"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/share"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="start"
        android:layout_weight=".14"
        android:background="@drawable/action_bar_left_button"
        android:src="@drawable/action_bar_glyph_back" />

    <ImageView
        android:id="@+id/bright"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".14"
        android:background="@drawable/action_bar_left_button"
        android:src="@drawable/action_bar_glyph_lux" />

    <ImageView
        android:id="@+id/rotate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".14"
        android:background="@drawable/action_bar_left_button"
        android:src="@drawable/rotate" />

    <ImageView
        android:id="@+id/bright"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".14"
        android:background="@drawable/action_bar_left_button"
        android:src="@drawable/action_bar_glyph_lux" />

    <ImageView
        android:id="@+id/rotate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".14"
        android:background="@drawable/action_bar_left_button"
        android:src="@drawable/rotate" />

    <ImageView
        android:id="@+id/forwa"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".14"
        android:background="@drawable/action_bar_left_button"
        android:src="@drawable/forward" />

</LinearLayout>

之后转到MainActivity.class并创建此方法。

    private void setupActionBar() {
    ActionBar actionBar = getActionBar();
    //actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayShowTitleEnabled(false);
    ViewGroup v = (ViewGroup)LayoutInflater.from(this)
        .inflate(R.layout.header, null);
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
            ActionBar.DISPLAY_SHOW_CUSTOM);
    actionBar.setCustomView(v,
            new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT,
                    ActionBar.LayoutParams.WRAP_CONTENT,
                    Gravity.CENTER_VERTICAL | Gravity.RIGHT));

} 

setupActionBar();添加到您的onCreate活动并运行您的应用:)。

现在你有自定义ActionBar with Dividers and Images P.S分隔符在布局中被定义为图像背景:)。