Java ScrollView savedInstanceState始终@NotNull参数
一天来,我一直试图理解这一点,但一定是做错了什么。我想能够恢复在方向改变时和视频活动(信息)后返回时在ScrollView中的位置 这是我的完整代码,没有任何失败的代码尝试 ScrollView android:id=“@+id/mScrollView”Java ScrollView savedInstanceState始终@NotNull参数,java,android,Java,Android,一天来,我一直试图理解这一点,但一定是做错了什么。我想能够恢复在方向改变时和视频活动(信息)后返回时在ScrollView中的位置 这是我的完整代码,没有任何失败的代码尝试 ScrollView android:id=“@+id/mScrollView” 我还尝试了我的其他变体,将其用于绘制图片。我在这里的想法是,您试图在通过布局定位滚动视图之前设置滚动位置,因此它的大小为0,将滚动设置为任何值都没有任何效果。尝试在OnPreDrawListener private static final S
我还尝试了我的其他变体,将其用于绘制图片。我在这里的想法是,您试图在通过布局定位
滚动视图之前设置滚动位置,因此它的大小为0,将滚动设置为任何值都没有任何效果。尝试在OnPreDrawListener
private static final String ARTICLE_SCROLL_POSITION = "ARTICLE_SCROLL_POSITION";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//... your stuff here
if (savedInstanceState != null) {
mScrollView.getViewTreeObserver().setOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
mScrollView.getViewTreeObserver().removeOnPreDrawListener(this);
mScrollView.setScrollY(savedInstanceState.getInt(ARTICLE_SCROLL_POSITION));
}
});
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//I don't think scroll x is ever being non-zero here
outState.putInt(ARTICLE_SCROLL_POSITION, mScrollView.getScrollY());
}
意外javascript标记?
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putIntArray("ARTICLE_SCROLL_POSITION",
new int[]{ mScrollView.getScrollX(), mScrollView.getScrollY()});
}
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
final int[] position = savedInstanceState.getIntArray("ARTICLE_SCROLL_POSITION");
if(position != null)
mScrollView.post(new Runnable() {
public void run() {
mScrollView.scrollTo(position[0], position[1]);
}
});
}
private static final String ARTICLE_SCROLL_POSITION = "ARTICLE_SCROLL_POSITION";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//... your stuff here
if (savedInstanceState != null) {
mScrollView.getViewTreeObserver().setOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
mScrollView.getViewTreeObserver().removeOnPreDrawListener(this);
mScrollView.setScrollY(savedInstanceState.getInt(ARTICLE_SCROLL_POSITION));
}
});
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//I don't think scroll x is ever being non-zero here
outState.putInt(ARTICLE_SCROLL_POSITION, mScrollView.getScrollY());
}