小编ude*_*fox的帖子

以编程方式安装Android M Light and Dark状态栏 - 如何让它再次变黑?

在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

28
推荐指数
7
解决办法
3万
查看次数

如何更改标题文本和按钮颜色而不更改新工具栏中的操作溢出菜单文本颜色?

我在我的项目中使用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)

但它只改变标题颜色,而不是更改菜单按钮: 在此输入图像描述

那么除了动作溢出菜单中的项目外,如何更改工具栏中所有内容的颜色?

android android-styles android-toolbar

14
推荐指数
1
解决办法
2945
查看次数

在CollapsingToolbarLayout而不是Title中的多行文本视图

我想在"折叠"工具栏中显示一些文本而不是标题.问题是文本可能包含多于1行.所以我需要使用自定义视图,但无法理解如何以适当的方式实现它.

另外,如何设置最小CollapsingToolbar高度,始终显示所有文本行,而不是将它们折叠为一个?

总之,我需要这样的东西:

在此输入图像描述

1 - 开始位置和3 - 结束位置(达到此工具栏高度后不再崩溃).

android android-layout material-design android-collapsingtoolbarlayout

11
推荐指数
1
解决办法
4651
查看次数

ListView项目带复选框 - 如何删除复选框涟漪效果?

我有一个带有项目的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

9
推荐指数
1
解决办法
3080
查看次数

添加PlayServices库后,清单合并失败

我补充道

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

2
推荐指数
1
解决办法
8216
查看次数