怎么走(不是看不见)NavigationBar?

时间:2016-05-12 21:21:41

标签: java android uinavigationbar fullscreen navigationbar

我尝试通过以下代码隐藏NavigationBar:

public static void setFullscreen(final View decorView) {
    decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {
            if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                decorView.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);
            }

        }
    });

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
        decorView.setSystemUiVisibility(decorView.getSystemUiVisibility());
    }
}

对于每个活动:

@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);}
}

活动主题:

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

我成功隐藏了NavifationBar,但NavigationBar只是看不见,没有消失!

真正的问题是如何离开导航栏?

抱歉我的英语不好。

2 个答案:

答案 0 :(得分:5)

您不需要单独的查询只是为了通过NOW()获取当前时间,您可以将其合并到您的查询中

#import <Cocoa/Cocoa.h>

那是DELETE FROM current_questions WHERE createTime > NOW() - INTERVAL 1 MINUTE 大于一分钟之前。

同样重要的是要知道mysql扩展已被弃用并将在以后删除:使用mysqli或PDO代替

答案 1 :(得分:1)

mysql_query函数返回一个资源。

你仍然需要从资源中获取数据

$serverTime = mysql_query("SELECT NOW()") or die(mysql_error());
$data = mysql_fetch_array($serverTime);
$serverTime = $data[0]; // and from now it should work.
mysql_query("DELETE FROM current_questions WHERE TIMESTAMPDIFF( MINUTE ,`createTime`,'$serverTime')")or die(mysql_error());

另一个答案更好,但回过头来逐步从错误中吸取教训是件好事。

另外,你应该使用mysqli扩展而不是mysql。那个较旧,很快就会被弃用。

资源:

http://php.net/manual/en/function.mysql-fetch-array.php

http://php.net/manual/en/function.mysql-query.php