自定义不可滑动CustomListView 嵌套在ScrollView中OnMeasure()报错

liu123120 2017-09-19 12:24:31
自定义CustomListview:
public class CustomListView extends ListView {
public CustomListView(Context context) {
super(context);
}

public CustomListView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public CustomListView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);

}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}

}
报错信息如下:
android.view.InflateException: Binary XML file line #15: Binary XML file line #15: Error inflating class <unknown>
at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.zhy.adapter.abslistview.MultiItemTypeAdapter.getView(MultiItemTypeAdapter.java:59)
at android.widget.AbsListView.obtainView(AbsListView.java:2583)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1356)
at android.widget.ListView.onMeasure(ListView.java:1258)
at com.enjoyor.gaokaobao.wigdet.CustomListView.onMeasure(CustomListView.java:32)
at android.view.View.measure(View.java:19244)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:825)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:511)
at android.view.View.measure(View.java:19244)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6113)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1723)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:788)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:648)
at android.view.View.measure(View.java:19244)
at android.support.v4.widget.NestedScrollView.measureChildWithMargins(NestedScrollView.java:1417)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:223)
at android.support.v4.widget.NestedScrollView.onMeasure(NestedScrollView.java:482)
at android.view.View.measure(View.java:19244)
at android.support.v4.widget.SwipeRefreshLayout.onMeasure(SwipeRefreshLayout.java:630)
at android.view.View.measure(View.java:19244)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6113)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:223)
at android.view.View.measure(View.java:19244)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:991)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:648)
at android.view.View.measure(View.java:19244)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6113)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:223)
at android.view.View.measure(View.java:19244)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6113)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:223)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
at android.view.View.measure(View.java:19244)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6113)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1723)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:788)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:648)
at android.view.View.measure(View.java:19244)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6113)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:223)
at android.view.View.measure(View.java:19244)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6113)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1723)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:788)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:648)
at android.view.View.measure(View.java:19244)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6113)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:223)
at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2759)
at android.view.View.measure(View.java:19244)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2502)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1459)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1717)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1340)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6809)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:894)
...全文
305 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
江三木洛 2017-09-19
  • 打赏
  • 举报
回复
布局文件呢?
liu123120 2017-09-19
  • 打赏
  • 举报
回复
引用 5 楼 xw13782513621 的回复:
[quote=引用 4 楼 liu123120 的回复:] [quote=引用 3 楼 xw13782513621 的回复:] CustomListView的onMeasure没什么问题吧,问题应该是出在你的MultiItemTypeAdapter的getView方法里了
我用的自己定义的absListview: public abstract class CommonAdapter<T> extends MultiItemTypeAdapter<T> { public CommonAdapter(Context context, final int layoutId, List<T> datas) { super(context, datas); addItemViewDelegate(new ItemViewDelegate<T>() { @Override public int getItemViewLayoutId() { return layoutId; } @Override public boolean isForViewType(T item, int position) { return true; } @Override public void convert(ViewHolder holder, T t, int position) { CommonAdapter.this.convert(holder, t, position); } }); } protected abstract void convert(ViewHolder viewHolder, T item, int position); }[/quote] 具体怎么实现的?[/quote] 原来是item布局文件的CircleImageView不支持FIT_XY。。。尴尬了,谢谢分析
江三木洛 2017-09-19
  • 打赏
  • 举报
回复
引用 4 楼 liu123120 的回复:
[quote=引用 3 楼 xw13782513621 的回复:] CustomListView的onMeasure没什么问题吧,问题应该是出在你的MultiItemTypeAdapter的getView方法里了
我用的自己定义的absListview: public abstract class CommonAdapter<T> extends MultiItemTypeAdapter<T> { public CommonAdapter(Context context, final int layoutId, List<T> datas) { super(context, datas); addItemViewDelegate(new ItemViewDelegate<T>() { @Override public int getItemViewLayoutId() { return layoutId; } @Override public boolean isForViewType(T item, int position) { return true; } @Override public void convert(ViewHolder holder, T t, int position) { CommonAdapter.this.convert(holder, t, position); } }); } protected abstract void convert(ViewHolder viewHolder, T item, int position); }[/quote] 具体怎么实现的?
liu123120 2017-09-19
  • 打赏
  • 举报
回复
引用 3 楼 xw13782513621 的回复:
CustomListView的onMeasure没什么问题吧,问题应该是出在你的MultiItemTypeAdapter的getView方法里了
我用的自己定义的absListview: public abstract class CommonAdapter<T> extends MultiItemTypeAdapter<T> { public CommonAdapter(Context context, final int layoutId, List<T> datas) { super(context, datas); addItemViewDelegate(new ItemViewDelegate<T>() { @Override public int getItemViewLayoutId() { return layoutId; } @Override public boolean isForViewType(T item, int position) { return true; } @Override public void convert(ViewHolder holder, T t, int position) { CommonAdapter.this.convert(holder, t, position); } }); } protected abstract void convert(ViewHolder viewHolder, T item, int position); }
江三木洛 2017-09-19
  • 打赏
  • 举报
回复
CustomListView的onMeasure没什么问题吧,问题应该是出在你的MultiItemTypeAdapter的getView方法里了
liu123120 2017-09-19
  • 打赏
  • 举报
回复
引用 1 楼 xw13782513621 的回复:
布局文件呢?
<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" > <RelativeLayout android:id="@+id/zixun_top" android:layout_width="match_parent" android:layout_height="@dimen/h_center_jyzx_height"> <ImageView android:id="@+id/img_zixun" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="@dimen/h_center_zx_margin" android:src="@drawable/gkb_sy_yxph"/> <!--<TextView--> <!--android:layout_width="wrap_content"--> <!--android:layout_height="wrap_content"--> <!--android:layout_centerVertical="true"--> <!--android:layout_marginLeft="20dp"--> <!--android:layout_alignParentLeft="true"--> <!--android:text="艺星排行榜"--> <!--android:textColor="#363636"--> <!--android:textSize="@dimen/h_txt_size"--> <!--android:textStyle="bold" />--> <TextView android:id="@+id/zixun_more" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="20dp" android:text="更多" android:textColor="@color/h_text_more_color" android:textSize="@dimen/h_txt_size"/> </RelativeLayout> <View android:id="@+id/zixun_space" android:layout_width="match_parent" android:layout_height="1dp" android:layout_below="@id/zixun_top" android:background="@color/tab_divider_color"/> <com.enjoy.wigdet.CustomListView android:id="@+id/zixun_lv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/zixun_space" android:layout_margin="@dimen/h_center_jyzx_item_margin" android:divider="@color/bg_titlebar_color" android:scrollbars="none" android:dividerHeight="5dp"/> </RelativeLayout>

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧