আমার জন্য কোনও উত্তরই পুরোপুরি কার্যক্ষম সমাধানের ফলাফল হিসাবে আসে না।
আমার ফিক্সের শোকেস https://www.youtube.com/watch?v=oUA4Cuxfdqc
গাইড (নুব-বান্ধব) , দয়া করে কোডটিতে কয়েকটি মন্তব্য নোট করুন।
এডিটটেক্সটডিপাস্তেচড। জাভা EditText
নামে একটি কাস্টমটির জন্য একটি জাভা ক্লাস তৈরি করুন
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.RelativeLayout;
public class EditTextDispatched extends android.support.v7.widget.AppCompatEditText {
private static final String TAG = "DispatchingEditText";
private boolean editable = true;
public EditTextDispatched(Context context) {
super(context);
}
public EditTextDispatched(Context context, AttributeSet attrs) {
super(context, attrs);
}
public EditTextDispatched(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public boolean isEditable() {
return editable;
}
public void setEditable(boolean editable) {
this.editable = editable;
}
@Override
public boolean dispatchTouchEvent(MotionEvent motionEvent) {
if (editable) {
super.dispatchTouchEvent(motionEvent);
return true;
}
((RelativeLayout) getParent()).onTouchEvent(motionEvent);
return true;
}
}
EditTextDispatched
আপনার এক্সএমএলটিতে উল্লেখ করুন (আপনাকে পিজকে-নাম পরিবর্তন করতে হবে):
<io.celox.brutus.EditTextDispatched
android:id="@+id/row_field_value"
style="@style/row_field_text_display"
android:layout_alignParentBottom="true"
android:text="@string/sample_field_value" />
আহবান জানাতে:
private void changeEditTextBehaviour(EditTextDispatched value, boolean editable) {
value.setEditable(editable);
value.setEnabled(editable);
}
et.setClickable(true)
? এটি কাজ করতে পারে।