标签: android-statusbar

更改Android状态栏颜色在Cordova中

我想更改Android中的状态栏颜色(我使用6.0进行测试).我尝试了状态栏插件和我找到的所有解决方案,但没有任何效果.

这包含在我的config.xml中<widget>:

<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="StatusBarBackgroundColor" value="#BE1912" />
Run Code Online (Sandbox Code Playgroud)

我的index.js不包括:

if (window.cordova && StatusBar)
{
    StatusBar.backgroundColorByHexString('#3399FF');
}
Run Code Online (Sandbox Code Playgroud)

添加了每个包名称和github repo的插件.

到目前为止没有任何工作......

提前致谢!:)

javascript android cordova cordova-plugins android-statusbar

6
推荐指数
1
解决办法
8420
查看次数

fitsSystemWindows被ConstraintLayout忽略

我试图在状态栏完全透明的应用程序中显示进行活动。我将此添加到我的样式中:

<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
Run Code Online (Sandbox Code Playgroud)

但是由于某种原因,我中的所有视图都显示在状态栏下方。所有视图都与parent对齐app:layout_constraintTop_toTopOf="parent"

在此处输入图片说明

android android-support-library android-statusbar android-constraintlayout

6
推荐指数
1
解决办法
1717
查看次数

5
推荐指数
2
解决办法
7153
查看次数

Android:从全屏返回后内容高度偏移了一些像素

我正在使用 Android Studio 创建一个全屏应用程序。我使用了Android Studio提供的FullScreenActivity模板。

它可以完美地切换全屏模式,只是从全屏返回时,活动内容的顶部向上偏移了一些像素(类似于状态栏的高度)。

以下是不同阶段的屏幕截图:全屏前、全屏时、全屏返回。当我打开布局边界设置的显示时,您可以看到作为视图边界的红色矩形。

全屏之前,边界很清晰:操作栏的底部与内容的顶部重叠 截图:全屏前

全屏时 截图:全屏

从全屏返回后:操作栏的底部与内容的顶部重叠,这就是问题,内容的顶部似乎向上移动。 截图:从全屏返回

为什么会发生这种情况以及我该如何解决它?请帮我一下,谢谢

全屏活动.java

import android.annotation.SuppressLint;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.view.MotionEvent;
import android.view.View;

/**
 * An example full-screen activity that shows and hides the system UI (i.e.
 * status bar and navigation/system bar) with user interaction.
 */
public class FullscreenActivity extends AppCompatActivity {
    /**
     * Whether or not the system UI should be auto-hidden after
     * {@link #AUTO_HIDE_DELAY_MILLIS} milliseconds.
     */
    private static final boolean AUTO_HIDE …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-view android-fullscreen android-statusbar

5
推荐指数
1
解决办法
1874
查看次数

Android:fitsSystemWindows和newline干扰bottomSheets

我发现,如果父布局包含android:fitsSystemWindows="true",当发生与视图相关的操作时,它将干扰我的BottomSheets定位.

特别是我遇到的那个:文本视图中的换行符将触发底部表格偏移系统/通知栏的高度.

newline + fitsSystemWindows =推倒我的底部表格

我删除了所有不相关的东西到按钮,textview和底部表格.

  • Button2:setText("1\n2")是魔术发生的地方

一旦我删除 android:fitsSystemWindows="true",它一切正常,没有更奇怪的行为,但我失去了systemSystemWindows颜色在系统/通知栏中的效果.

我也尝试给自己的bottomSheet布局android:fitsSystemWindows="false",但它没有任何效果.

如何在我的bottomSheets上没有这种奇怪的偏移行为的情况下如何实现fitsSystemWindows = true?

你自己看! 在此输入图像描述

public class Test extends AppCompatActivity {
    private BottomSheetBehavior bottomSheetBehavior;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act_test);

        LinearLayout bottomSheet = (LinearLayout) findViewById(R.id.root_btmsheet);
        bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);
        bottomSheet.post(new Runnable() {
            @Override
            public void run() {
                bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
            }
        });

        ((Button) findViewById(R.id.btn1)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ((TextView) findViewById(R.id.info1)).setText("1");
            }
        });
        ((Button) findViewById(R.id.btn2)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-view android-statusbar

5
推荐指数
1
解决办法
447
查看次数

如果我们隐藏状态栏,为什么要隐藏操作栏?

尽管可以在保留操作栏的同时隐藏状态栏,但此处的文档强调

“你不应该在没有状态栏的情况下显示操作栏。”

这是什么原因?它只是一个用户体验指南还是有其他原因?

android android-actionbar android-fullscreen android-statusbar

5
推荐指数
0
解决办法
139
查看次数

Android:半透明状态栏无法使用Google Maps API

我有一个问题,状态栏不会变成半透明.半透明状态栏和导航条形码本身可以正常工作,但是,当我将Google Maps Fragment实施到活动视图中时,半透明条形变为灰色.我已经使用完全透明的状态栏对其进行了测试,但最初会再次运行,然后在添加地图后会显示白色背景.好像谷歌地图有某种叠加效果.任何帮助都可以通过Google Maps API获得状态栏的半透明效果.

如

XML文件

<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">


    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.mapwithmarker.MapsMarkerActivity"
        tools:layout="@layout/activity_main" />

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

半透明状态栏

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        }
Run Code Online (Sandbox Code Playgroud)

java android android-xml google-maps-android-api-2 android-statusbar

5
推荐指数
1
解决办法
1709
查看次数

在应用启动时立即隐藏状态栏和导航栏

我想知道是否有办法在应用程序启动时隐藏 Android 设备的软键(状态和导航栏)?以一个游戏为例,它最初显示黑屏,同时在运行时隐藏品牌、标题和主菜单屏幕之前的软键。

我在我的 MainActivity 中包含了以下代码片段,当应用程序启动时,我最初在运行时看到一个带有软键的白屏大约一秒钟,然后当 MainActivity 的线程完成运行时软键消失:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢一堆。

* 2017 年 1 月 19 日更新:* 包括:

<item name="android:windowFullscreen">true</item>
Run Code Online (Sandbox Code Playgroud)

...进入应用程序的主题,只有状态栏按时隐藏,而不是导航栏。我的第二篇文章 -在应用启动时立即隐藏导航栏

android runtime launch android-statusbar android-navigation-bar

5
推荐指数
1
解决办法
8154
查看次数

为什么我的布局不能用"adjustPan"移动得足够多?

adjustPan在我的应用程序中使用了一些问题,因为它不能正常工作.其他一些用户也遇到过这个问题,所以我认为分享这个问题很重要(单击EditText时布局不会向上移动).

注意:我使用的是Android Studio,我正在使用"即时应用",因此文件的位置会有所不同.

当我adjustPan在布局中使用时,我的活动不会向上移动到EditText软键盘上方显示的位置(请参阅图像详细信息).无论您是在Manifest文件还是Java文件中使用它,都会出现相同的结果.

不仅如此,最奇怪的部分是状态栏变得透明,而应该在通知图标后面的深蓝色条有点下降(参见图像详细信息).

问题截图

我尝试过多次尝试解决这个问题,比如使用adjustResize,setOnTouchListener但我收到的这两个答案都没有解决这个问题.

我仍然无法弄清楚这个问题的原因,所以关于如何发现这个问题的原因的任何答案或评论也没关系.

这是我的一些代码:

清单文件:

<activity
        android:name=".Input_Activity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
Run Code Online (Sandbox Code Playgroud)

Java文件:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;

public class Input_Activity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_input__activity);

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
   }
}
Run Code Online (Sandbox Code Playgroud)

XML文件:

<android.support.constraint.ConstraintLayout 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"
tools:context=".Input_Activity">

<EditText
    android:layout_width="214dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    android:inputType="number|numberDecimal"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.585"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.725" /> …
Run Code Online (Sandbox Code Playgroud)

android android-edittext window-soft-input-mode adjustpan android-statusbar

5
推荐指数
1
解决办法
448
查看次数

Android - 为带有导航抽屉和应用栏的应用完全隐藏状态和导航栏

如何动态隐藏状态和导航栏彻底

该应用程序包含一个带有应用栏/工具栏和 FAB 按钮的常规导航抽屉。

当切换到全屏模式,在内容的导航和状态栏的滚动了。屏幕上留下两个空条。我想要隐藏那些空条。

我创建了一个最小的演示应用程序。左侧是常规应用程序。当推动晶圆厂时,应用程序应该全屏显示。

在此处输入图片说明

我怎样才能让酒吧隐藏?

问题:请写出最小演示项目中需要哪些更改?

更新了第二个解决方案

@Roaim 提供的 GREAT 解决方案有效。必要的是将android:fitsSystemWindows布局属性设置为 false。

如果您仍然无法显示和隐藏状态/导航栏,此解决方案可能会对您有所帮助。

完全隐藏条形:

public static void hideSystemUI() {
    if (getSupportActionBar() != null) {
        getSupportActionBar().hide();
    }
    getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_IMMERSIVE
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN);
}
Run Code Online (Sandbox Code Playgroud)

并显示所有条:

public static void showSystemUI() {
    if (getSupportActionBar() != null) {
        getSupportActionBar().show();
    }
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
}
Run Code Online (Sandbox Code Playgroud)

android-layout android-actionbar android-fullscreen android-statusbar android-navigation-bar

5
推荐指数
1
解决办法
4783
查看次数