首页 > 解决方案 > 无法禁用点击 MaterialButton

问题描述

安卓工作室 3.6

款式:

 <style name="buttonStyle" parent="@style/Widget.MaterialComponents.Button">
        <item name="android:textColor">@color/default_button_textColor</item>
        <item name="backgroundTint">@color/button_bg_color</item>
        <item name="android:textAppearance">@style/byttonTexAppearanceStyle</item>
    </style>

在我的 xml 布局中:

<com.google.android.material.button.MaterialButton
            android:id="@+id/buttonStartSearchBluetooth"
            style="@style/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="@dimen/button_height"
            android:layout_margin="@dimen/button_margin"
            android:onClick="onClickButtonStartSearch"
            android:text="@string/start_search"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />

在我的 Fragment 中,它成功调用方法onClickButtonStartSearch如下:

class BluetoothPageFragment : Fragment() {
private lateinit var dataBinding: BluetoothPageFragmentBinding
    private lateinit var bluetoothPageViewModel: BluetoothPageViewModel
   override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        dataBinding =
            DataBindingUtil.inflate(inflater, R.layout.bluetooth_page_fragment, container, false)
        val view = dataBinding.getRoot()
        dataBinding.setHandler(this)
        initLogic()
        return view
    }

 fun onClickButtonStartSearch(view: View) {
            bluetoothPageViewModel.doClickButtonStartSearch()
        }
    }

好的。现在我想“在飞行中”禁用点击按钮。所以我试试这个:

dataBinding.buttonStartSearchBluetooth.isClickable = false
            dataBinding.buttonStartSearchBluetooth.isEnabled = false
            dataBinding.buttonStartSearchBluetooth.setFocusableInTouchMode(false)

但没有任何帮助。为什么?

标签: androidmaterial-design

解决方案


推荐阅读