今天工做中須要這個,之前也寫過這樣的需求可是沒有記錄下來,今天趁機記錄一下。也但願對你們工做有幫助!謝謝。android
來電與主題無關的,要實現ScrollView滾動條的隱藏,有兩種方法,ide
一種是在XML的ScrollView佈局中加入屬性android:scrollbars="none"佈局
另外一種則是在代碼中獲取ScrollView後進行scroll.setVerticalScrollBarEnabled(false);測試
下面來講下ScrollView如何嵌套ListViewspa
按常理,ScrollView套ListView會存在兩個問題:
1.裏面的listView高度沒法算出來,一般只能顯示listview的其中一行
2.listview不能滾動code
爲何ScrollView嵌套ListView會出現問題,只顯示一個item的問題。blog
這個是計算ListView高度產生的問題。ip
咱們能夠這樣解決。get
第一給ListView一個固定的高度。it
例如設置android:layout_height="200dip",那麼能夠解決,可能會影響美觀。
第二給ScrollView設置屬性:android:fillViewport="true"
測試的時候發現,若是ListView加載的數據很少的話,確實能夠解決,可是當ListView加載的數據較多的時候,仍舊沒法顯示徹底,而且這個時候ListView自身也沒法滾動了。
第三,我也是按照這個方法的,用代碼從新測量下ListView的高度。
1 private void initLoad() { 2 ListLoadAdapter adapter = new ListLoadAdapter(); 3 lvLoan.setAdapter(adapter); 4 setListViewHeightBasedOnChildren(lvLoan); 5 } 6 public void setListViewHeightBasedOnChildren(ListView listView) { 7 // 獲取ListView對應的Adapter 8 ListAdapter listAdapter = listView.getAdapter(); 9 if (listAdapter == null) { 10 return; 11 } 12 13 int totalHeight = 0; 14 for (int i = 0, len = listAdapter.getCount(); i < len; i++) { 15 // listAdapter.getCount()返回數據項的數目 16 View listItem = listAdapter.getView(i, null, listView); 17 // 計算子項View 的寬高 18 listItem.measure(0, 0); 19 // 統計全部子項的總高度 20 totalHeight += listItem.getMeasuredHeight(); 21 } 22 23 ViewGroup.LayoutParams params = listView.getLayoutParams(); 24 params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 25 // listView.getDividerHeight()獲取子項間分隔符佔用的高度 26 // params.height最後獲得整個ListView完整顯示須要的高度 27 listView.setLayoutParams(params); 28 }