当我执行方向更改时,滚动视图有时会重新定位,因此我丢失了标题(例如Chol Of Cholcolates ...)我的视图的文本视图。
这就是我想要的。
当我执行方向更改时,我会丢失标题视图。
这是我的滚动视图布局。
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="0dp"
android:scrollbars="vertical"
android:fillViewport="true"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:id="@+id/scrollview">
<LinearLayout
style = "@style/Activity"
android:keepScreenOn="false"
android:paddingBottom="0dp"
android:id="@+id/recipe_view" >
<TextView
android:id="@+id/name"
style="@style/name"
android:hint="@string/recipe_title"
/>
<TextView
android:id="@+id/instructions"
style="@style/instructions"
android:gravity="start"
android:hint="@string/recipe_instructions"
/>
</LinearLayout>
</ScrollView>
在片段的onCreateView()中,我正在调用
// correct the position of the scrollview
mView.findViewById(R.id.recipe_view).scrollTo(0, 0);
无效。
问题似乎是随机的。有时滚动条会将标题推出视图,有时则不会。
答案 0 :(得分:0)
当方向改变时,您可以保存和恢复滚动位置。
将当前位置保存在onSaveInstanceState:
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putIntArray("ARTICLE_SCROLL_POSITION",
new int[]{ mScrollView.getScrollX(), mScrollView.getScrollY()});}
并在onRestoreInstanceState中恢复它:
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]);
}
});}
<强> - 或 - 强>
非hacky方式是将android:configChanges="keyboardHidden|orientation|screenSize"
放入AndroidManifest.xml中该特定活动的标记中,并自行处理活动娱乐内容。