0

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

以下是 API 15 上通常的样子: 普通的

这是 16 或 17 日: 坏的

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

4

1 回答 1

2

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

编辑 - - -

Edit here is the image :). 

InstaGram 操作栏 + 底栏

以最好的结果再次回来:)。您需要做的第一件事是创建一个名为 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 Activity 并运行您的应用程序:)。

现在您有了带有分隔线和图像 PS 的自定义 ActionBar,分隔线在布局中定义为图像背景:)。

于 2013-02-02T05:22:57.757 回答