Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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
Android 在DialogFragment中滚动视图,方向更改后滚动位置是否更改? 内部有一个滚动视图对话框片段,当方向改变时,滚动视图位置变为中间的某个位置。_Android_Dialog_Position_Scrollview_Fragment - Fatal编程技术网

Android 在DialogFragment中滚动视图,方向更改后滚动位置是否更改? 内部有一个滚动视图对话框片段,当方向改变时,滚动视图位置变为中间的某个位置。

Android 在DialogFragment中滚动视图,方向更改后滚动位置是否更改? 内部有一个滚动视图对话框片段,当方向改变时,滚动视图位置变为中间的某个位置。,android,dialog,position,scrollview,fragment,Android,Dialog,Position,Scrollview,Fragment,保存和恢复滚动视图的滚动位置,当电话方向改变时,你可以做以下操作: 在onSaveInstanceState方法中保存当前位置: protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putIntArray("SCROLL_POSITION", new int[]{ mScrollView.getScrollX(

保存和恢复滚动视图的滚动位置,当电话方向改变时,你可以做以下操作:

在onSaveInstanceState方法中保存当前位置:

protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putIntArray("SCROLL_POSITION",
            new int[]{ mScrollView.getScrollX(), mScrollView.getScrollY()});
}
然后在onRestoreInstanceState方法中恢复位置,请注意,我们需要向ScrollView发布runnable以使其正常工作:

protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    final int[] position = savedInstanceState.getIntArray("SCROLL_POSITION");
    if(position != null)
        mScrollView.post(new Runnable() {
            public void run() {
                mScrollView.scrollTo(position[0], position[1]);
            }
        });
}

我的活动未重新创建,但scrollview位置正在更改