7

问题如下:在我的一项活动中,我需要为我的操作栏自定义布局,而这样做的唯一方法是在我的屏幕上设置一个透明的操作栏。为此,我将 ActionBar 标记为覆盖,并将操作栏背景指定为透明。这在使用 Android >= 15 时有效,但在 14 及以下版本中,ActionBar 保持其底部边框。我尝试了任何方法来删除它,但无济于事。

这是一张图片,可以更清楚地看到它:

在 API 14 上: API 14 上的操作栏

在 API 16 上: API 16 上的操作栏

设计如下:Action Bar 应该是透明的并且处于覆盖模式,在它的后面有一个背景 + 标志

<ImageView
 android:id="@+id/action_bar_background"
 android:layout_width="match_parent"
 android:layout_height="@dimen/action_bar_accueil_total_height"
 android:layout_alignParentTop="true"
 android:contentDescription="@string/action_bar"
 android:scaleType="fitXY"
 android:src="@drawable/actionbar_logo_extended" />

<ImageView
 android:id="@+id/home_gallica_logo"
 android:layout_width="@dimen/largeur_logo_carrousel"
 android:layout_height="@dimen/action_bar_accueil_total_height"
 android:layout_alignParentTop="true"
 android:layout_centerHorizontal="true"
 android:contentDescription="@string/action_bar"
 android:src="@drawable/logo_fullcolor" />

一些精度:我使用 ABS,但这似乎不是问题的根源,因为切换到 v7 支持库做了完全相同的事情。

有谁知道如何删除这个底部边框?

4

3 回答 3

3

我试图做一个简单的活动来展示这种行为,但我没能做到。我用了一个Activity主题Theme.Sherlock

android:theme="@style/Theme.Sherlock

并制作覆盖(在onCreate()方法中):

requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); // Window from com.actionbarsherlock.view
//...
setContentView(content);
ActionBar ab = getSupportActionBar();
ab.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
于 2013-08-10T05:55:22.487 回答
3

根据Luksprog在评论中的建议和测试,我在此页面的操作栏中使用了 Theme.Sherlock(而不是 Theme.Sherlock.Light),并从我的旧主题中复制了我需要的设置。这似乎已经解决了问题,但我不完全确定来源。我能给想要看到这个的人的唯一建议是使用 Theme.Sherlock。

于 2013-08-09T08:32:08.430 回答
0

hide()您可以通过调用方法隐藏操作栏:

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

或者,如果您想永久隐藏它,您可以在清单中设置它:

<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
>
于 2013-08-08T21:32:31.877 回答