ListView去掉默认点击效果
16lz
2021-01-26
取消ListView默认的点击效果的方法:
在Listview中添加如下代码
android:listSelector="@android:color/transparent"
- 如果在listview中单独添加了一个view,并且想要只有该view不显示点击效果,方法是给该view设置背景色。
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){Logger.e("position="+position);if(position==0){Logger.d("addprogramdescription");TextViewtextView=newTextView(getActivity());ListView.LayoutParamslayoutParams=newListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT,ListView.LayoutParams.WRAP_CONTENT);textView.setLayoutParams(layoutParams);textView.setPadding(20,0,20,0);textView.setText(R.string.program_description);textView.setTextColor(getResources().getColor(R.color.black));textView.setTextSize(12);textView.setBackgroundColor(getResources().getColor(R.color.white));//只有该view没有点击效果。textView.setSelected(false);returntextView;}elseif(position==1){ImageViewimageView=newImageView(getActivity());ListView.LayoutParamslayoutParams=newListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT,ListView.LayoutParams.WRAP_CONTENT);imageView.setLayoutParams(layoutParams);imageView.setBackgroundResource(R.drawable.bar_next);returnimageView;}ViewprogramView=mInflater.inflate(R.layout.program_listview_part,null);ChannelItemprogram=mProgramItems.get(position);TextViewtime=(TextView)programView.findViewById(R.id.next_program_time_textview);time.setText(program.getPubDate());TextViewname=(TextView)programView.findViewById(R.id.next_program_name_textview);name.setText(program.getTitle());returnprogramView;}
在断开网络后点击原来Listview中的内容时,会报出如下错误。对应方法是,在网络请求失败后需要再次调用一次mListAdapter.notifyDataSetChanged();函数。
04-2715:09:53.16313398-13398/?E/AndroidRuntime﹕FATALEXCEPTION:mainjava.lang.IllegalStateException:ThecontentoftheadapterhaschangedbutListViewdidnotreceiveanotification.Makesurethecontentofyouradapterisnotmodifiedfromabackgroundthread,butonlyfromtheUIthread.[inListView(2131230833,classandroid.widget.ListView)withAdapter(classjp.nhkworldtv.android.ui.fragment.ProgramMainFragment$10)]atandroid.widget.ListView.layoutChildren(ListView.java:1770)atandroid.widget.AbsListView.onTouchEvent(AbsListView.java:3203)atandroid.widget.ListView.onTouchEvent(ListView.java:4089)atandroid.view.View.dispatchTouchEvent(View.java:5568)atandroid.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2064)atandroid.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1732)atandroid.widget.AbsListView.dispatchTouchEvent(AbsListView.java:6217)atandroid.widget.ListView.dispatchTouchEvent(ListView.java:4809)atandroid.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2070)atandroid.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1746)atandroid.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2070)atandroid.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1746)atandroid.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2070)atandroid.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1746)atandroid.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2070)atandroid.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1746)atandroid.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2070)atandroid.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1746)atandroid.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2070)atandroid.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1746)atandroid.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2070)atandroid.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1746)atandroid.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2070)atandroid.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1746)atandroid.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2070)atandroid.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1746)atcom.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1961)atcom.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1398)atandroid.app.Activity.dispatchTouchEvent(Activity.java:2428)atcom.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1909)atandroid.view.View.dispatchPointerEvent(View.java:5748)atandroid.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3165)atandroid.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2719)atandroid.view.ViewRootImpl.processInputEvents(ViewRootImpl.java:951)atandroid.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2733)atandroid.os.Handler.dispatchMessage(Handler.java:99)atandroid.os.Looper.loop(Looper.java:154)atandroid.app.ActivityThread.main(ActivityThread.java:4974)atjava.lang.reflect.Method.invokeNative(NativeMethod)atjava.lang.reflect.Method.invoke(Method.java:511)atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)atcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)atdalvik.system.NativeStart.main(NativeMethod)
更多相关文章
- android桌面悬浮窗显示录屏时间控制效果
- Android手机客户端访问.NET服务器端的方法(1)
- 【转】android中onMeasure初看,深入理解布局之一!
- 利用GridView实现单选功能
- android的Jetpack的navigation原理详解
- 安卓 屏蔽子控件点击事件
- Android(安卓)数据存取到文件当中
- 0828 - 精简 Lua 绑定第一步
- Binary XML file line 2: Error inflating class