当我发布我的笔记应用程序Android 4.0 - 4.3时,我使用自定义操作栏颜色和自定义操作栏图标(而不是使用标准的明暗和黑暗操作栏).我想在Android 4.4上做到这一点,状态栏也将采用我在Action Bar中使用的自定义颜色(即#FFD060).有没有办法轻松更改我当前的styles.xml以允许4.4利用这个?
我的values-v19文件夹下的styles.xml如下:
<resources>
<style name="AppBaseTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBarTheme</item>
</style>
<style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#ffd060</item>
<item name="android:textColor">#fff</item>
<item name="android:icon">@drawable/action</item>
<item name="android:titleTextStyle">@style/MyTextAppearance</item>
</style>
<style name="MyTextAppearance" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:icon">@drawable/action</item>
<item name="android:textColor">#ffffff</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
我试图实现:
<item name="android:windowTranslucentStatus">true</item>
Run Code Online (Sandbox Code Playgroud)
它会导致我的应用程序的内容向上移动,从状态栏区域开始并被操作栏覆盖.

我想整合这样的东西:
我这样做了,但我似乎无法将imageview放在工具栏下面.没有工具栏,我可以在状态栏下进行,但是将这两者结合起来是不可能的.
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true"
tools:context="com.project.android.PhotoActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/photo_tl"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#59000000"
tools:ignore="UnusedAttribute" />
<ImageView
android:id="@+id/photo_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="fitStart" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在我的活动中,我做了以下事情:
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)
我还声明了一个styles-v21.xml文件:
<style name="Project.Photo" parent="Project.Light">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">#59000000</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并将其设置为PhotoActivity的默认样式.我已经尝试将工具栏放在FrameLayout中,但这样做我的工具栏只是隐藏,如下所示:
提前致谢.
得到了修复,但工具栏与状态栏重叠.反正有没有修复填充?如果我使用android:fitsSystemWindows ="true",状态栏不再是半透明的.
android android-layout material-design android-toolbar android-statusbar
我正在使用CollapsingToolbarLayout开发一个屏幕.
当我在Activity中使用此布局时.一切正常.
但是当我在Fragment中使用它时.工具栏位于状态栏下.
这是我的代码.请帮我.谢谢.
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
>
<!--App Bar Layout-->
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar_layout"
android:layout_width="match_parent"
android:layout_height="300dp"
android:fitsSystemWindows="true"
>
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsed_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
app:contentScrim="?attr/colorPrimary"
>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"
android:src="@mipmap/ic_launcher"
/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lay_topbar"
>
<ImageView
android:id="@+id/img_logo"
android:layout_width="44dp"
android:layout_height="44dp"
android:background="#FF0000"
android:layout_centerVertical="true"
/>
<ImageButton
android:id="@+id/imb_home"
android:layout_width="44dp"
android:layout_height="44dp"
android:background="#00FF00"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
/>
<ImageButton
android:id="@+id/imb_cart"
android:layout_width="44dp"
android:layout_height="44dp"
android:background="#0000FF"
android:layout_toLeftOf="@id/imb_home"
android:layout_centerVertical="true"
/>
</RelativeLayout> …Run Code Online (Sandbox Code Playgroud) 我正在创建一个带有半透明状态栏的棒棒糖工具栏的应用程序,以使状态栏也着色.它与真正的财产一起工作得很好.
只是工具栏现在与状态栏重叠,看起来很乱.将工具栏置于状态栏下方并保持窗口半透明状态的选项有哪些?
代码片段:
<style name="Theme.XXX" parent="Theme.AppCompat">
<item name="colorPrimary">...</item>
<item name="colorPrimaryDark">...</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="windowActionBar">false</item>
<item name="colorAccent">...</item>
</style>
Run Code Online (Sandbox Code Playgroud)
活动中使用的工具栏代码:
<android.support.v7.widget.Toolbar
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/XXX"
android:elevation="5dp"
android:minHeight="?attr/actionBarSize"
android:theme="@style/Theme.XXX" />
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我一直在关注有关如何创建应用程序工具栏的官方文档。教程说,按照说明进行操作后,
“您的应用程序现在有一个基本的操作栏。默认情况下,操作栏仅包含应用程序的名称和溢出菜单。”
正如您从这张图片中看到的,我已经做了一些样式来获得我想要的颜色,并且我添加了一个菜单项,只是为了看看它是否正确显示。稍后我将研究如何修复图标的颜色。
我的问题是,正如您所看到的,应用程序标题没有垂直居中。距离顶部太近了。这让我很恼火,因为据我所知,它应该自动居中,而我不知道为什么我的不是,但我仍然尝试使用样式自己解决这个问题,但绝对没有成功。样式属性似乎对工具栏标题的填充没有任何影响。我可以向整个工具栏添加填充,但这也会影响菜单项,但我不希望它这样做。
我的实现如下所示:
活动_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true">
<android.support.v7.widget.Toolbar
android:id="@+id/main_activity_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/MyToolbarStyle"
app:theme="@style/MyToolbarTheme" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
样式.xml:
<resources>
<!-- Base application theme. -->
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="MyToolbarStyle" parent="Base.Widget.AppCompat.Toolbar">
<item name="android:elevation">4dp</item>
<item name="android:background">@color/colorPrimary</item>
</style>
<style name="MyToolbarTheme" parent="Base.Widget.AppCompat.Toolbar">
<item name="android:textColorPrimary">#ffffff</item>
</style>
Run Code Online (Sandbox Code Playgroud)
理想情况下,如果有人可以解释我哪里出了问题,使我的应用程序标题不垂直居中,那就太好了,但如果没有,有人可以告诉我如何在应用程序标题中添加边距或填充吗工具栏以便我可以尝试自己将其居中?
PS 这不是这个问题的重复- 该问题涉及更复杂的自定义工具栏。我的应该是默认实现。
更新: 根据要求,这是我的 MainActivity.java 文件的代码:
package com.example.samplescanner;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu; …Run Code Online (Sandbox Code Playgroud) 我将手机升级为Marshmallow后,我所制作的所有应用都将其操作栏切断.该应用程序在Lollipop和Kitkat上工作正常.
该应用程序基本上有一个视图,它在我更新的手机上没有正确显示.
上半部分切断了
activity_main.xml
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.shalin.clickme.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
content_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.shalin.clickme.MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me"
android:onClick="switchButtons"
android:id="@+id/button1"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:text=""
android:onClick="switchButtons"
android:layout_alignBottom="@+id/button1"
android:layout_alignParentEnd="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
编辑:我尝试了android:fitsSystemWindows,这就是我得到的: 使用android:fitsSystemWindows