在Android M中,我们可以使状态栏图标变暗.为此,我们可以在主题的xml中指定属性:
<item name="android:windowLightStatusBar">true</item>
Run Code Online (Sandbox Code Playgroud)
或者我们使用以下代码在运行时设置它:
View someView = findViewById(R.id.some_view);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
someView.setSystemUiVisibility(someView.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
Run Code Online (Sandbox Code Playgroud)
它实际上工作正常.但问题是如何在运行时将状态栏模式正确设置为黑暗?
我已经尝试过那些变种:
// Makes status bar mode dark, but also hides it along with all navigation views.
someView.setSystemUiVisibility(someView.getSystemUiVisibility() | ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
// Does nothing
someView.setSystemUiVisibility(someView.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
// Also does nothing
someView.setSystemUiVisibility(someView.getSystemUiVisibility() ^ View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
Run Code Online (Sandbox Code Playgroud)
那么如何才能以正确的方式完成?
user-interface android android-statusbar android-6.0-marshmallow
我在我的项目中使用android.support.v7.widget.Toolbar.默认情况下,在灯光主题中它有黑色动作溢出菜单图标,黑色标题和黑色溢出菜单文本颜色,就像那样(不要看导航图标 - 它是自定义的):

但在我的应用程序中,我需要它是白色的.我在工具栏的样式中将android:textColorPrimary设置为白色:
<style name="Widget.My.Toolbar" parent="Widget.AppCompat.Toolbar">
<item name="theme">@style/ThemeOverlay.My.Toolbar</item>
</style>
<style name="ThemeOverlay.My.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar">
<item name="android:textColorPrimary">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)
它改变了标题的颜色和溢出菜单按钮,就像我想要的那样,但它也改变了Action owerflow菜单项的文字颜色:

它看起来很难看.我甚至试过以编程方式设置标题颜色
toolbar.setTitleTextColor(getResources.getColor(R.color.white);
Run Code Online (Sandbox Code Playgroud)
但它只改变标题颜色,而不是更改菜单按钮:

那么除了动作溢出菜单中的项目外,如何更改工具栏中所有内容的颜色?
我想在"折叠"工具栏中显示一些文本而不是标题.问题是文本可能包含多于1行.所以我需要使用自定义视图,但无法理解如何以适当的方式实现它.
另外,如何设置最小CollapsingToolbar高度,始终显示所有文本行,而不是将它们折叠为一个?
总之,我需要这样的东西:
1 - 开始位置和3 - 结束位置(达到此工具栏高度后不再崩溃).
android android-layout material-design android-collapsingtoolbarlayout
我有一个带有项目的ListView包含一个复选框和一些其他元素.问题是,当我点击Android 5+设备上的列表项时,我看起来像这样:
我不想在复选框周围产生涟漪效应.我该如何实现这一目标?
项目XML代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="@dimen/list_item_height"
android:gravity="center_vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item_check"
android:checked="false"
android:focusable="false"
android:layout_marginRight="32dp"
android:clickable="false"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item_title"
android:textAppearance="@android:style/TextAppearance.Medium"
android:maxLines="1"
android:lines="1"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) android listview android-layout android-checkbox material-design
我补充道
compile 'com.google.android.gms:play-services:6.1.71'
Run Code Online (Sandbox Code Playgroud)
通过build.gradle阻止"依赖",并在我尝试同步项目后,该gradle抛出错误:
Error:Gradle: Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
Run Code Online (Sandbox Code Playgroud)
我使用的MinSdk版本是8,目标,编译和构建工具是19.
dependencies {
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.google.android.gms:play-services:6.1.71'
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)
该错误意味着什么以及如何解决?我使用Intellij Idea作为IDE.谢谢你的回答!
android intellij-idea gradle android-manifest google-play-services