自定義ScrollView最大內容顯示高度

2021-08-21 02:35:33 字數 1729 閱讀 7269

最近專案中遇到了這樣一種顯示效果,當scrollview中顯示內容量小的時候自適應高度不滾動,當scrollview中顯示內容量大的時候需要將其高度設定為螢幕高度的一半且可以滾動檢視,由於scrollview沒有設定其最大高度的屬性,所以就自定義了乙個scrollview來滿足我們的顯示要求。

自定義乙個view繼承scrollview並重寫其onmeasure方法,在此方法中設定控制項最大高度不能超過螢幕高度的一半(當然大家可以根據自己的需要來進行設定)。

**如下:

public

class

myscrollview

extends

scrollview

public

myscrollview(context context, attributeset attrs)

public

myscrollview(context context, attributeset attrs, int defstyleattr)

@override

protected

void

onmeasure(int widthmeasurespec, int heightmeasurespec) catch (exception e)

// 重新計算控制項的寬高

super.onmeasure(widthmeasurespec, heightmeasurespec);

}}

在布局檔案中使用:

.wiggins

.widget

.myscrollview

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:fadingedge="none"

android:fillviewport="true"

android:overscrollmode="never">

"match_parent"

android:layout_height="wrap_content"

android:layout_marginleft="@dimen/dip20"

android:layout_marginright="@dimen/dip20"

android:textcolor="@color/black"

android:textsize="@dimen/dip15" />

com.wiggins

.widget

.myscrollview>

注:

1、去除scrollview邊界陰影

1.1 在xml中新增:android:fadingedge=」none」

1.2 **中新增:scrollview.sethorizontalfadingedgeenabled(false);

2、去除scrollview拉到頂部或底部時繼續拉動後出現的陰影效果,適用於2.3及以上

2.1 在xml中新增:android:overscrollmode=」never」

3、當scrollview子布局不足以鋪滿全屏的時候其高度就是子布局高度之和,此時如果想讓scrollview鋪滿全屏時只需要設定以下屬性即可

3.1 在xml中新增:android:fillviewport=」true」

通過以上配置後就可以實現我們所要達到的效果了。

自定義水平ScrollView

description 自定義水平 scrollview 水平滑動 public class cushoriscrollview extends horizontalscrollview public cushoriscrollview context context,attributeset at...

自定義scrollview彈性布局

public class dailscrollview extends scrollview public dailscrollview context context,attributeset attrs override protected void onfinishinflate overri...

scrollview自定義分頁大小

cgpoint nearesttargetoffsetforoffset cgpoint offset withvelocity cgpoint velocity cgfloat pagesize self.cellwidth self.padding cgfloat targetx cgfloat...