1. 程式人生 > >解決Android中,禁止ScrollView內的控件改變之後自動滾動 - 轉

解決Android中,禁止ScrollView內的控件改變之後自動滾動 - 轉

add tag mark 改變 html linear 一個 ide orien

問題:

最近在寫一個程序界面,有一個scrollVIew,其中有一段內容是需要在線加載的。

當內容加載完成後,ScrollView中內容的長度會發生改變,這時ScrollView會自動下滾,如下圖所示:

技術分享

滾動的那一下體驗特別不好,所以要防止這種情況。即不論Scrollview中內容如何,都要保持在最上。

解決辦法:

先簡單寫一下我的xml文件的結構:

[html] view plain copy
  1. <ScrollView
  2. android:id="@+id/scrollView1"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:layout_alignParentLeft="true"
  6. android:layout_below="@+id/linearLayout2"
  7. android:background="@drawable/repeat_bg"
  8. android:paddingBottom="5dp" >
  9. <LinearLayout
  10. android:layout_width="match_parent"
  11. android:layout_height="match_parent"
  12. android:orientation="vertical"
  13. android:paddingLeft="10dp"
  14. android:paddingRight="10dp"
  15. android:focusable="true"
  16. android:focusableInTouchMode="true"
  17. android:paddingTop="15dp" >
  18. <!-- 上面這兩行是控制scrollview
  19. android:focusable="true"
  20. android:focusableInTouchMode="true"
  21. 不自動的關鍵! !-->
  22. <LinearLayout
  23. android:layout_width="match_parent"
  24. android:layout_height="wrap_content"
  25. android:orientation="vertical" >
  26. <ListView
  27. android:id="@+id/lv_gc"
  28. android:layout_marginTop="5dp"
  29. android:layout_width="match_parent"
  30. android:layout_height="20dp"
  31. android:background="#aaffffff"
  32. android:divider="#666"
  33. android:scrollbars="none|vertical" >
  34. </ListView>
  35. </LinearLayout>
  36. </LinearLayout>
  37. </ScrollView>


如上面代碼,我的ScrollView中第一個內容是LinearLayout,下面有一個LinearLayout包裹著的ListView.ListView是長度可變的。

將LinearLayout中加入代碼:

[html] view plain copy
  1. android:focusable="true"
  2. android:focusableInTouchMode="true"

問題即可解決,歡迎大家交流。

轉載請註明來自:http://blog.csdn.net/icyfox_bupt/article/details/15026299

解決Android中,禁止ScrollView內的控件改變之後自動滾動 - 轉