আমি এই পুরোনো এক হতে পারে জানি কিন্তু আমি এই বিষয় এর সাথে সম্পর্কিত যখন আমি ব্যবহার কিছু মধ্যে কুব্জ আছে InputTypeএবংapp:passwordToggleEnabled="true" একসাথে ।
সুতরাং এটি লিখতে যেমন এটি এখানে কাউকে সহায়তা করতে পারে।
আমি app:passwordToggleEnabledআমার পাসওয়ার্ড ইনপুট ক্ষেত্রে বিকল্পের সাথে পাসওয়ার্ড ক্ষেত্রে একটি কাস্টম ফন্ট ব্যবহার করতে চাই । 27.1.1 সালে (এটি লেখার সময়) সমর্থন লাইব্রেরিটি ক্র্যাশ করে।
কোডটি নীচের মতো ছিল,
<android.support.design.widget.TextInputLayout
android:id="@+id/input_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/_10dp"
android:layout_marginTop="@dimen/_32dp"
android:hint="@string/current_password"
android:textColorHint="@color/hint_text_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:passwordToggleEnabled="true"
app:passwordToggleTint="@color/black">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|left"
android:maxLines="1"
android:textAlignment="viewStart"
android:textColor="@color/black"
android:textColorHint="@color/camel"
android:textSize="@dimen/txt_16sp"
app:font_style="regular"
app:drawableEnd="@drawable/ic_remove_eye" />
</android.support.design.widget.TextInputLayout>
উপরের কোডটি inputTypeএক্সএমএলে সংজ্ঞায়িত হয়নি
EditText password = (EditText) findViewById(R.id.password);
password.setTransformationMethod(new PasswordTransformationMethod());
এবং জাভাতে, setTransformationMethodআমাকে textPasswordইনপুট প্রকারের বৈশিষ্ট্য অর্জন করতে সহায়তা করবে এবং আমার কাস্টম ফন্ট শৈলীতে আমি খুশি।
তবে নীচে উল্লিখিত ক্র্যাশটি সমস্ত এপিআই স্তরে 27.1.1 সমর্থন লাইব্রেরি সহ ঘটেছিল।
java.lang.NullPointerException: নাল বস্তুর রেফারেন্সে ভার্চুয়াল পদ্ধতি 'শূন্যর android.support.design.widget.CheckableImageButton.setChecked (বুলিয়ান)' আহ্বান করার চেষ্টা
এটি onRestoreInstanceStateঅভ্যন্তর TextInputLayoutশ্রেণীর কারণে ক্র্যাশ হচ্ছিল ।
পদক্ষেপগুলি পুনরুত্পাদন করুন: পাসওয়ার্ডের দৃশ্যমানতা টগল করুন এবং অ্যাপ্লিকেশনটি ছোট করুন এবং সাম্প্রতিক অ্যাপ্লিকেশনগুলি থেকে খুলুন। আহ, হো ক্রাশ!
আমার যা দরকার তা হ'ল ডিফল্ট পাসওয়ার্ড টগল অপশন (সমর্থন লাইব্রেরি ব্যবহার করে) এবং পাসওয়ার্ড ইনপুট ক্ষেত্রে কাস্টম ফন্ট।
কিছুক্ষণ পরে, নীচের মতো করে অঙ্কিত,
<android.support.design.widget.TextInputLayout
android:id="@+id/input_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/_10dp"
android:layout_marginTop="@dimen/_32dp"
android:hint="@string/current_password"
android:textColorHint="@color/hint_text_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:passwordToggleEnabled="true"
app:passwordToggleTint="@color/black">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|left"
android:maxLines="1"
android:textAlignment="viewStart"
android:textColor="@color/black"
android:textColorHint="@color/camel"
android:textSize="@dimen/txt_16sp"
app:font_style="regular"
app:drawableEnd="@drawable/ic_remove_eye"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
এক্সএমএল-এ যুক্ত হয়েছে android:inputType="textPassword"
TextInputLayout inputPassword = findViewById(R.id.input_password);
EditText password = findViewById(R.id.password);
EditText userName = findViewById(R.id.user_name);
// Get the typeface of user name or other edit text
Typeface typeface = userName.getTypeface();
if (typeface != null)
inputLayout.setTypeface(typeface); // set to password text input layout
উপরের জাভা কোডে,
আমি ব্যবহারকারীর নাম থেকে কাস্টম টাইপফেসটি অর্জন করেছি EditTextএবং TextInputLayoutএটি পাসওয়ার্ড ক্ষেত্রে প্রয়োগ করেছি । পাসওয়ার্ডে স্পষ্ট করে টাইপফেস সেট করার দরকার নেই EditTextকারণ এটি TextInputLayoutসম্পত্তিটি অর্জন করবে ।
এছাড়াও, আমি সরিয়েছি password.setTransformationMethod(new PasswordTransformationMethod());
এইভাবে করে, passwordToggleEnabledকাজ করা হচ্ছে, কাস্টম ফন্টটি প্রয়োগ করা হয়েছে এবং ক্র্যাশকে বাই-বাইও করা হয়েছে। আশা করি আসন্ন সমর্থন রিলিজগুলিতে এই সমস্যাটি স্থির হয়ে যাবে।