我想让用户无法使用textinputlayout,当用户点击它时,我想执行一个动作。
我在textinputlayout的edittext中添加了android:focusable="false"
以使其无法使用,但现在当我点击它时,它没有在textinputlayout的onclicklistener中进行回调。
<android.support.design.widget.TextInputLayout
android:id="@+id/tipVideoFilePath"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/uploadVideo"
android:layout_toLeftOf="@+id/uploadVideo">
<EditText
android:id="@+id/etVideoFilePath"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/dp5"
android:singleLine="true"
android:focusable="false"
android:hint="@string/videoPath"
android:textColor="@color/black"/>
</android.support.design.widget.TextInputLayout>
答案 0 :(得分:4)
试试这段代码。 为编辑文本获取clck监听器。
<android.support.design.widget.TextInputLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<EditText
android:id="+id/etVideoFilePat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:clickable="true" />
</android.support.design.widget.TextInputLayout>
答案 1 :(得分:3)
你可以尝试这些
nav li
答案 2 :(得分:0)
或者这个:
将EditText
放入另一个布局(RaltiveLayout)并制作EditText
Match_Parent
edittext.setFocusable(false);
edittext.setClickable(false);
relativelayout.setFocusable(true);
relativelayout.setClickable(true);
在relativelayout上应用onclicklistener
答案 3 :(得分:0)
这对我有用(在科特林):
editText.apply {
isFocusableInTouchMode = false
isClickable = false
isLongClickable = false
isEnabled = false
}
答案 4 :(得分:0)
1)设置TextInputLayout
android:clickable="true"
。
2)设置TextInputEditText
android:clickable="true"
和android:focusable="false"
。
3)在View.OnClickListener
和TextInputLayout
上同时设置TextInputEditText
。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="false"/>
</com.google.android.material.textfield.TextInputLayout>
注意:在两个视图上都设置View.OnClickListener
很重要,因为TextInputLayout
大于TextInputEditText
并位于其后。
答案 5 :(得分:0)
我对TextInputLayout
和TextInputEditText
有相同的问题。我想打开一个对话框。
这对我有用
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/country_chooser_layout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
>
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/country_chooser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:drawableEnd="@drawable/ic_expand_arrow"
android:focusable="false"
android:hint="Country"
android:inputType="textCapWords" />
</com.google.android.material.textfield.TextInputLayout>
科特琳:
val countryChooser = view.findViewById<TextInputEditText>(R.id.country_chooser)
countryChooser.setOnClickListener { v -> showCountryDialog(v) }
答案 6 :(得分:0)
我的布局:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tvSelectBankInputLayout"
style="@style/MyEditText.TextInputLayout.FilledBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
android:clickable="true"
android:hint="@string/txt_title_bank_name"
app:endIconDrawable="@drawable/ic_right_muiten"
app:endIconMode="custom"
app:errorIconDrawable="@null">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/tvSelectBank"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:cursorVisible="false"
android:ellipsize="end"
android:focusable="false"
android:imeOptions="actionNext"
android:inputType="none"
android:maxLines="1"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="@color/c_212121"
android:textSize="@dimen/sp_16" />
</com.google.android.material.textfield.TextInputLayout>
这是我的代码:
tvSelectBank?.setOnClickListener {
startActivityForResult(intentFor<ListBankActivity>(), REQUEST_CODE)
}
答案 7 :(得分:0)
您还可以在inputType
上定义EditText
的{{1}},以使其不可编辑。
none