1. 程式人生 > >ScrollView巢狀ListView設定預設位置為最頂部的解決方案

ScrollView巢狀ListView設定預設位置為最頂部的解決方案

描述:

Scrollview裡面嵌套了一個listview ,這是開發中最尋常的一種佈局,遇到的問題是:在這個Scrollview頁面預設的起始位置不是最頂部,而是listview的底部。

原因:

  1. 在Activity計算視窗的高度時,是在listview沒有填充資料時候就完成的,由於ScrollView巢狀listview時沒有指定高度,所以ScrollView就會按照layout中定義的預設高度計算。

  2. 因為listview獲取了焦點。

解決:

  1. myScrollView.smoothScrollTo(0,20);

    需在listview資料載入完成後呼叫

  2. 在程式碼裡去掉listview的焦點

    lv.setFocusable(false);

  3. Listview外套一層LinearLayout

  4. 跟EditText一樣,在父元素的屬性下面下下面這兩行即可

    android:focusableInTouchMode=”true” 
    android:focusable=”true”

  5. 最開始的時候讓最上面其中一個控制元件獲得焦點,滾動條自然就到頂部去了,如下:

    txtBaseMsg.setFocusable(true); 
    txtBaseMsg.setFocusableInTouchMode(true); 
    txtBaseMsg.requestFocus();

相關推薦

ScrollViewListView設定預設位置頂部解決方案

描述: Scrollview裡面嵌套了一個listview ,這是開發中最尋常的一種佈局,遇到的問題是:在這個Scrollview頁面預設的起始位置不是最頂部,而是listview的底部。 原因: 在Activity計算視窗的高度時,是在listview沒有填充資料時候就完成的,由於ScrollV

《Android那些事》——ScrollViewListView只顯示一行的問題的解決方法

在實際開發過程中,經常會碰到ScrollView中巢狀ListView的情景 可是如果直接使用ScrollView巢狀ListView的話,我們會發現,ListView只能顯示一行 對於這個問題網上有很多解決方案, 1.手動設定ListView的高度,但ListView中的資料

Android學習 之 問題&解答 ScrollViewListView時顯示不全的簡便解決方案

利用下面這個Utility 類的靜態方法setListViewHeightBasedOnChildren()即可實現: 在listview.setAdapter()之後呼叫Utility.setListViewHeightBasedOnChilren(listview)就

ScrollViewListView位置頂部

解決方法: ScrollView下會套一層LinearLayout,LinearLayout同樣也包含需要滾動的控制元件,在LinearLayout下新增下面兩個屬性就就可以了(如下) android:focusable=”true” android:focus

ScrollViewListView,顯示不全和位置不是頂部解決辦法

(1)首先寫一個listview的頁面,用ScrollView進行巢狀,注意ScrollView裡面只能有一個佈局屬性,多個可以用Linearout進行包含 <?xml version="1.0" encoding="utf-8"?> <RelativeL

ScrollViewRecyclerView、ScrollViewListviewScrollView各種佈局,預設不在頂部和回到頂部解決方法;

如果:ScrollView.scrollTo(0,0);ScrollView.fullScroll(View.FOCUS_UP) ;ScrollView.smoothScrollTo(0, 0);這三種方法都解決不了你的問題,那麼請往下看;佈局有點複雜:最外層是SwipeRe

ScrollViewListView時Bug解決以及ExpandableListView設定全部展開

1.ExpandableListView設定預設展 mExpandListview.setAdapter(adapter); //設定ExpandableListView全部展開 for (int i = 0;i < adapter.getGroupCount();

解決ScrollViewListView或GridView置頂顯示問題

今天無意間發現一個小小的問題,當我們使用ScrollView裡面巢狀ListView或GridView的時候頁面顯示會停留在ListView的item當前,而不是置頂顯示整個頁面,不要慌,解決辦法來了。 1.在java程式碼中ListView或GridView初始化後面新增以下程式碼: sc

從原始碼角度解析 - ScrollViewListView只顯示一行的問題

<ScrollView android:id="@+id/scroll_view" android:layout_width="match_parent" android:layout_height="match_parent">

scrollviewlistview進頁面不在頂部

scrollview和listview衝突導致進頁面就不是在頂部的問題 解決方案1:ScrollView.post() sv_container.post( new Runnable() { public void run() {

ScrollViewListView listView展示及分頁處理

1.自定義ListView 重寫OnMeasure方法適應ScrollView: public class ListViewForScrollView extends ListView { public ListViewForScrollView(Context context

ScrollViewListView、RecyclerView,使其高度自適應

1、針對ScrollView巢狀ListView時只顯示第一個item高度的bug,可在activity裡動態修改ListView的高度(即計算每個item和分割線的高度後進行相加得到總高度),在setAdapter之後呼叫下面這個函式即可。 值得注意的是,此時ListVi

android開發實現微博正文效果、頂部懸浮、ScrollViewListView

先來看一下效果圖 從圖中不難看出,我這裡使用了ScrollView巢狀ListView的方式來實現的這種效果。 這裡我們需要重寫一下ScrollView,程式碼如下: package com.gsssk.ddpolice.myview; impo

NestedScrollView 之 ScrollView ListView

  【問題彙總】ScrollView巢狀ListView的問題 Anroid  Studio 新建一個工程之後,預設繼承AppCompatActivity, MainActivity 佈局如下  main.layout   <

ScrollviewlistView資料顯示不正常問題

ScrollView 巢狀listview 資料顯示不全的問題解決方案:    提供一種比較中意的解決方案,不需要自己去測量高度,省了很多事。具體方案如下: 定義一個自己的listView,重寫屢試不爽。如果即使重寫之後還不能顯示完全,在加上一句 scrollView.sc

解決ScrollViewListView顯示不完全和滑動衝突的問題

</pre>在開發中我們往往會遇到這樣奇葩的需求,讓一個ScrollView巢狀ListView,那麼我們就會遇到這樣一個問題,就是listView 顯示不完全和滾動衝突的問題。下面就來解決一下這個問題</p><p></p>&

ScrollViewListView,listItem.measure(0,0);報空指標異常NullPointerException

1: SrollView巢狀ListView時顯示不全問題及ListView高度問題: 直接上程式碼,使用以下函式解決此問題: public void setListViewHeightOnChildren(ListView listView) {

由滑動頂端懸浮引發的效能優化大坑坑坑—ScrollViewListView以及層層

看題目就知道,今天我們主要講的主角是關於scrollview巢狀listview以及再層層巢狀導致的效能優化問題。現在市面上好多app都有這樣一種功能,在頁面中間某一位置有一個佈局,在頁面整體向上滑動時,當此佈局到達螢幕頂端或者某一位置時要求此佈局懸浮停靠,

ScrollView listview自動滑動到底部的解決辦法

ScrollView 巢狀listview時,當listview自動載入時,會自動滑動到scrollview到底部, 解決方法:在listView的父層加上  android:descendantFocusability="blocksDescendants";即可,每次載

ScrollViewListView內容居中顯示

前段時間寫了一個ScrollView巢狀ListView,ListView通過重寫onMeasure方法設定了自適應ScrollView的高度,但是ScrollView裡邊的內容不是從開始位置顯示,如下圖: 在網上狠狠地搜尋了一番,有說用scrollView.smoothScro