public class MyViewPager extends ViewPager{
public MyViewPager(Context context, AttributeSet attrs){
super(context, attrs);
}
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
View view = getChildAt(getCurrentItem());
if (view != null) {
view.measure(widthMeasureSpec, heightMeasureSpec);
}
setMeasuredDimension(getMeasuredWidth(),
measureHeight(heightMeasureSpec, view));
}
private int measureHeight(int measureSpec, View view) {
int result = 0;
int specMode = MeasureSpec.getMode(measureSpec);
int specSize = MeasureSpec.getSize(measureSpec);
if (specMode == MeasureSpec.EXACTLY) {
result = specSize;
} else {?
if (view != null) {
result = view.getMeasuredHeight();
} if (specMode == MeasureSpec.AT_MOST) {
result = Math.min(result, specSize);
}
}
return result;
}
public void measeureView(View view)
{
int intw = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
int inth = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
view view.measure(intw, inth);
// 獲取測量后的view尺寸
int intwidth = view.getMeasuredWidth();
int intheight = view.getMeasuredHeight();
}
}
可自適應(yīng)條目高度的ViewPager
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- Android開發(fā)藝術(shù)探索筆記 SpecMode UNSPECIFIED,表示一種測量狀態(tài),對View的大小不做限...
- 文章獨家授權(quán)公眾號:碼個蛋更多分享:http://www.cherylgood.cn 我們在上一篇Android之...
- 一、View的繪制流程 View的繪制流程分為三部分,首先是進行Measure,也就是測量View的寬高,然后是L...
- 在上一篇文章中,我?guī)е蠹乙黄鹌饰隽艘幌翷ayoutInflater的工作原理,可以算是對View進行深入了解的第...