我在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