Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么切换到另一个视图会还原另一个视图中的更改?_Java_Android_Gridview_View - Fatal编程技术网

Java 为什么切换到另一个视图会还原另一个视图中的更改?

Java 为什么切换到另一个视图会还原另一个视图中的更改?,java,android,gridview,view,Java,Android,Gridview,View,我有三个视图可以在两个视图之间水平滑动。长时间单击后,所有三个视图的颜色方案都应更改为黑色和白色。但是,当我从最后一页滑动到第一页再滑动回来时,长时间单击所做的更改将恢复。为什么会发生这种情况?我有很多关于这三个视图的代码,所以如果您认为需要,请告诉我。谢谢。因为您只有3个视图,所以您可以放心地称之为: mViewPager.setOffscreenPageLimit(3); 因此,当从第一个到最后一个再向后滑动时,寻呼机将保持视图不被破坏并重新创建它们。您的幻灯片页面根视图应该有一个id,然

我有三个视图可以在两个视图之间水平滑动。长时间单击后,所有三个视图的颜色方案都应更改为黑色和白色。但是,当我从最后一页滑动到第一页再滑动回来时,长时间单击所做的更改将恢复。为什么会发生这种情况?我有很多关于这三个视图的代码,所以如果您认为需要,请告诉我。谢谢。

因为您只有3个视图,所以您可以放心地称之为:

mViewPager.setOffscreenPageLimit(3);

因此,当从第一个到最后一个再向后滑动时,寻呼机将保持视图不被破坏并重新创建它们。

您的幻灯片页面根视图应该有一个id,然后android将保存视图,并在以后能够重新创建它。例如:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/content"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

    <TextView style="?android:textAppearanceMedium"
              android:padding="16dp"
              android:lineSpacingMultiplier="1.2"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="@string/lorem_ipsum" />
</ScrollView>

android:id=@+id/内容很重要。

我想你是说它们在一个viewPager中?默认情况下,viewPager保留3个视图,即当前视图和两侧各1个视图。如果一个视图超出此范围,它将被销毁并在接近时重新创建。我在Android Wear中使用gridViewPager,但假设它遇到相同的问题,有办法解决吗?是的,我发布了一个答案,现在效果很好!谢谢