Android 如何在Kotlin中禁用选项卡?
在这里,当我调用tabLayout!!时,出现了一个空指针异常!!。getChildAt(1).setEnabled(false)。如何禁用Kotlin中的特定选项卡。提前谢谢 logcat 从 表格布置!!。getChildAt(1).setEnabled(false) 到 表格布置!!。getChildAt(1).isEnabled=falseAndroid 如何在Kotlin中禁用选项卡?,android,kotlin,Android,Kotlin,在这里,当我调用tabLayout!!时,出现了一个空指针异常!!。getChildAt(1).setEnabled(false)。如何禁用Kotlin中的特定选项卡。提前谢谢 logcat 从 表格布置!!。getChildAt(1).setEnabled(false) 到 表格布置!!。getChildAt(1).isEnabled=false 和活动未在清单中注册。注册它。由于您使用的是自定义视图,您可以通过使用触摸事件禁用选项卡: 12-03 10:03:27.536 7899-7899
和活动未在清单中注册。注册它。由于您使用的是自定义视图,您可以通过使用触摸事件禁用选项卡:
12-03 10:03:27.536 7899-7899/com.salesrep.auxxa.alliontechnologies.auxxasr E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.salesrep.auxxa.alliontechnologies.auxxasr, PID: 7899
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.salesrep.auxxa.alliontechnologies.auxxasr/com.salesrep.auxxa.alliontechnologies.auxxasr.NewPaymentActivity}: kotlin.KotlinNullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: kotlin.KotlinNullPointerException
at com.salesrep.auxxa.alliontechnologies.auxxasr.NewPaymentActivity.onCreate(NewPaymentActivity.kt:84)
at android.app.Activity.performCreate(Activity.java:5937)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
使用以下命令:
val view = tabLayout.getTabAt(1)!!.customView.parent as View;
view.setOnTouchListener { v, event -> true }
tabLayout!!。getChildAt(0)as ViewGroup
是包含子视图的视图组。声明活动
(tabLayout!!.getChildAt(0) as ViewGroup).getChildAt(1).setEnabled(false)
启用选项卡
touchableList = tabLayout?.touchables
touchableList?.forEach { it.isEnabled = false }
你能发布logcatHi Manoj吗?我添加了logcat。在manifestregistered中注册活动已注册可能重复的问题请查看此链接嗨,我无法支持TableLayout。getTabAt(1)@Rajithapera我很抱歉,误读了你的问题。我认为您可以通过在触摸屏上返回true来禁用选项卡,或者您也可以在父视图上尝试isEnabled=false
。一个问题?如何在需要时启用此选项卡?请尝试view.setOnTouchListener(null)
或view.setOnTouchListener{v,event->false}
重新启用它。谢谢您为我节省了时间
var touchableList: ArrayList<View>? = ArrayList()
touchableList = tabLayout?.touchables
touchableList?.forEach { it.isEnabled = false }
touchableList?.get(0)?.isEnabled = true