全屏后,大ScrollView滞后

时间:2015-12-07 08:21:19

标签: android scrollview fullscreen

我在ScrollView中有一些文本,它滚动得很好,直到应用程序全屏显示。在此之后,无论花费多少时间,滚动都不会对前几次触摸做出响应。但是当应用程序返回正常模式时,没有这样的问题。

ScrollView定义如下:

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true">
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:padding="4dp"
                android:onClick="onClick"
                android:focusable="false"
                android:clickable="true"
                android:id="@+id/text"/>
    </ScrollView>

    <android.support.v7.widget.Toolbar
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:alpha="0.9"
        android:id="@+id/app_bar"
        android:minHeight="?attr/actionBarSize"
        android:background="@color/colorPrimary"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        />

</FrameLayout>

切换全屏模式:

private void hideSystemUI() {
    mToolbar.animate().translationY(-mToolbar.getHeight()).setInterpolator(new AccelerateInterpolator(1)).start();
    mDecorView.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);
    isFullscreen = true;
}

private void showSystemUI() {
    mToolbar.animate().translationY(statusBarHeight).setInterpolator(new DecelerateInterpolator(1)).start();
    mDecorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
    isFullscreen = false;
}

你有什么想法吗?使用小文本可以正常工作。

UPD:当应用程序全屏显示时,会出现很多奇怪的日志。我所做的就是调用hideSystemUi方法,因此没有任何昂贵的操作。我完全糊涂了..

GC_FOR_ALLOC freed 526K (92), 17% free 17936K/21508K, paused 56ms, total 56ms

0 个答案:

没有答案