我有问题: 1st:我想自定义操作栏的高度,但它不起作用。
这是我主题中的内容。
<style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light">
<item name="actionBarStyle">@style/Theme.MyAppTheme.ActionBarStyle</item>
<item name="windowActionBarOverlay">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="actionBarSize">46dp</item>
<item name="android:height">46dp</item>
<item name="height">46dp</item>
</style>
第二。如果无法更改操作栏的高度,请告诉我:&#34;如何使操作栏的背景透明。&#34;。 (我将使用Root Layout height 48dp创建操作栏的自定义视图。然后使用heigh = 46dp创建子视图:))。
请帮帮我。 非常感谢。
答案 0 :(得分:2)
您的问题是您将windowActionBarOverlay
设置为false
。
要将您的内容放在操作栏下方:
在values.xml中的values.xml中添加它:
<item name="windowActionBarOverlay">true</item>
<item name="windowContentOverlay">@null</item>
<item name="android:windowContentOverlay">@null</item>
这是来自values-v14文件夹的style.xml:
<item name="windowActionBarOverlay">true</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="windowContentOverlay">@null</item>
然后在您的布局中,您可以使用以下内容获取操作栏的大小:
android:layout_marginTop="?attr/actionBarSize"
您需要使用该属性而不是&#34; 48dp&#34;或&#34; 46dp&#34;因为高度根据不同的配置(纵向/横向,平板电脑/手机......)而变化。
要使操作栏透明,您需要更改背景。无论是在您的主题中还是在代码中。
getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00000000")));
EDIt:我刚刚检查过我的一个项目。显然,在活动布局的根目录上设置边距并不起作用。所以我做了类似的事情:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<View //invisible view, to prevent warning
android:layout_width="fill_parent"
android:layout_height="0dp"
android:visibility="gone" >
</View>
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="?attr/actionBarSize" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
//real content
</LinearLayout>
</ScrollView>
答案 1 :(得分:1)
试试这个:
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#000000")));