小编hel*_*rld的帖子

如何撤消对窗口装饰视图的更改?

我的活动中有两个片段,fA 和 fB。当我单击 fA 中的按钮时,fB 会替换 fA。fB 就像 Google Play 商店视图一样,当您打开查看某些应用程序时。该图像位于透明状态栏下方。我通过将以下代码添加到 fB#onCreateView 来做到这一点:

    Window w = getActivity().getWindow();
    w.getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
    w.setStatusBarColor(Color.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud)

当我按返回时,fB被删除并被fA取代,一切正常,但工具栏位于状态栏下方。喜欢:

在此输入图像描述

然而,它应该看起来像: 在此输入图像描述

这就是片段首次加载时的样子。

有什么办法可以清除我在 fB 中设置的标志吗?我尝试将此代码放入片段的 onResume 中,但没有成功!

    w.getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    |View.SYSTEM_UI_FLAG_VISIBLE);
Run Code Online (Sandbox Code Playgroud)

而且,我也尝试过:

    w.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    w.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以解决这个问题吗?谢谢你!

android android-fragments android-view android-fullscreen android-statusbar

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

为什么这段代码中没有调用OnComplete?(接收安卓)

我知道当所有项目都发出时,会调用观察者的 OnComplete 。在下面的代码中,我将数据从游标放入 flatMap 运算符中的 ArrayList。我的光标有 100 个条目( c.getCount() 给出 100 ),我的列表大小是 100。 onNext 也被调用 100 次。但 onComplete 没有被调用。我正在 onComplete 中填充列表视图。

static int i = 0;
final List<String> ar = new ArrayList<>();
ListView lv = ...;
ArrayAdapter<String> adapter = ...;   
.
.
. 
q.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
                    .flatMap(new Func1<SqlBrite.Query, Observable<String>>() {
                @Override
                public Observable<String> call(SqlBrite.Query query) {
                    Cursor c = query.run();
                    c.moveToFirst();
                    Log.d("testApp", String.valueOf(c.getCount())); // prints 100
                    do {
                        ar.add(c.getString(0));
                    } while (c.moveToNext());
                    Log.d("testApp", String.valueOf(ar.size())); // prints 100
                    return Observable.from(ar);
                }
            }).subscribe(new Observer<String>() …
Run Code Online (Sandbox Code Playgroud)

android rx-java rx-android

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