আমি অ্যান্ড্রয়েড ডিজাইনের লাইব্রেরি ব্যবহার করছি TextinputLayout। তবে ইঙ্গিত রঙ, লেবেল রঙ এবং EditTextঅভ্যন্তরের আন্ডারলাইন রঙ কাস্টমাইজ করতে পারেনি TextinputLayout। সাহায্য করুন.
আমি অ্যান্ড্রয়েড ডিজাইনের লাইব্রেরি ব্যবহার করছি TextinputLayout। তবে ইঙ্গিত রঙ, লেবেল রঙ এবং EditTextঅভ্যন্তরের আন্ডারলাইন রঙ কাস্টমাইজ করতে পারেনি TextinputLayout। সাহায্য করুন.
উত্তর:
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">@color/accent</item>
<item name="colorControlHighlight">@color/accent</item>
আরও তথ্যের জন্য এই থ্রেডটি পরীক্ষা করুন ।
<style name="MyHintStyle" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/main_color</item>
</style>
এবং এটি এর মতো ব্যবহার করুন:
<android.support.design.widget.TextInputLayout
...
app:hintTextAppearance="@style/MyHintStyle">
<android.support.design.widget.TextInputLayout
...
app:hintTextAppearance="@style/MyHintStyle"
android:textColorHint="#c1c2c4">
@ অ্যালবএটিএনএফকে ধন্যবাদ
android:textColorHintকরা TextInputLayoutথাকে।
ফেডার কাজাকভ এবং অন্যদের উত্তরগুলির ভিত্তিতে , আমি একটি ডিফল্ট কনফিগার তৈরি করেছি।
styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="Widget.Design.TextInputLayout" parent="AppTheme">
<item name="hintTextAppearance">@style/AppTheme.TextFloatLabelAppearance</item>
<item name="errorTextAppearance">@style/AppTheme.TextErrorAppearance</item>
<item name="counterTextAppearance">@style/TextAppearance.Design.Counter</item>
<item name="counterOverflowTextAppearance">@style/TextAppearance.Design.Counter.Overflow</item>
</style>
<style name="AppTheme.TextFloatLabelAppearance" parent="TextAppearance.Design.Hint">
<!-- Floating label appearance here -->
<item name="android:textColor">@color/colorAccent</item>
<item name="android:textSize">20sp</item>
</style>
<style name="AppTheme.TextErrorAppearance" parent="TextAppearance.Design.Error">
<!-- Error message appearance here -->
<item name="android:textColor">#ff0000</item>
<item name="android:textSize">20sp</item>
</style>
</resources>
activity_layout.xml
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Text hint here"
android:text="5,2" />
</android.support.design.widget.TextInputLayout>
দৃষ্টি নিবদ্ধ:
ফোকাস ছাড়াই:
ভুল বার্তা:
সাথে উপাদান উপাদান লাইব্রেরী আপনি ব্যবহার করতে পারেন com.google.android.material.textfield.TextInputLayout।
রঙগুলি পরিবর্তন করতে আপনি একটি কাস্টম স্টাইল প্রয়োগ করতে পারেন।
ইঙ্গিতটির রঙ পরিবর্তন করতে আপনাকে এই বৈশিষ্ট্যগুলি ব্যবহার করতে হবে:
hintTextColor এবং android:textColorHint।
<style name="Custom_textinputlayout_filledbox" parent="@style/Widget.MaterialComponents.TextInputLayout.FilledBox">
<!-- The color of the label when it is collapsed and the text field is active -->
<item name="hintTextColor">?attr/colorPrimary</item>
<!-- The color of the label in all other text field states (such as resting and disabled) -->
<item name="android:textColorHint">@color/selector_hint_text_color</item>
</style>
আপনার জন্য একটি নির্বাচক ব্যবহার করা উচিত android:textColorHint। কিছুটা এইরকম:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:alpha="0.38" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
<item android:alpha="0.6" android:color="?attr/colorOnSurface"/>
</selector>
নীচের রেখার রঙ পরিবর্তন করতে আপনাকে বৈশিষ্ট্যটি ব্যবহার করতে হবে:boxStrokeColor।
<style name="Custom_textinputlayout_filledbox" parent="@style/Widget.MaterialComponents.TextInputLayout.FilledBox">
....
<item name="boxStrokeColor">@color/selector_stroke_color</item>
</style>
এছাড়াও এই ক্ষেত্রে আপনার একটি নির্বাচক ব্যবহার করা উচিত। কিছুটা এইরকম:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?attr/colorPrimary" android:state_focused="true"/>
<item android:alpha="0.87" android:color="?attr/colorOnSurface" android:state_hovered="true"/>
<item android:alpha="0.12" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
<item android:alpha="0.38" android:color="?attr/colorOnSurface"/>
</selector>
আপনি আপনার বিন্যাসে এই বৈশিষ্ট্যগুলি প্রয়োগ করতে পারেন:
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
app:boxStrokeColor="@color/selector_stroke_color"
app:hintTextColor="?attr/colorPrimary"
android:textColorHint="@color/selector_hint_text_color"
...>
boxStrokeColor। উদাহরণস্বরূপ selector_stroke_colorবিশেষে শেষ লাইনটি:<item android:alpha="0.38" android:color="?attr/colorOnSurface"/>
এডিটেক্সট ট্যাগটিতে এই বৈশিষ্ট্যটি যুক্ত করুন এবং উপভোগ করুন:
android:backgroundTint="@color/colorWhite"
এই ব্লগ পোস্টটি বিভিন্ন স্টাইলিংয়ের দিকগুলি বর্ণনা করে EditTextএবং এর সাথে AutoCompleteTextViewমোড়ানো TextInputLayout।
22.1.0+ এর জন্য EditTextএবং অ্যাপকম্প্যাট লাইব আপনি কিছু থিম সম্পর্কিত সেটিংসের সাথে থিম বৈশিষ্ট্য নির্ধারণ করতে পারেন:
<style name="StyledTilEditTextTheme">
<item name="android:imeOptions">actionNext</item>
<item name="android:singleLine">true</item>
<item name="colorControlNormal">@color/greyLight</item>
<item name="colorControlActivated">@color/blue</item>
<item name="android:textColorPrimary">@color/blue</item>
<item name="android:textSize">@dimen/styledtil_edit_text_size</item>
</style>
<style name="StyledTilEditText">
<item name="android:theme">@style/StyledTilEditTextTheme</item>
<item name="android:paddingTop">4dp</item>
</style>
এবং এগুলি প্রয়োগ করুন EditText:
<EditText
android:id="@+id/etEditText"
style="@style/StyledTilEditText"
জন্য AutoCompleteTextViewকিছু অধিক এটা মোড়কে কারণ জটিল TextInputLayoutএবং এই থিম ভাসমান ট্যাগ আচরণ বিরতি আবেদন। আপনাকে কোডে এটি ঠিক করতে হবে:
private void setStyleForTextForAutoComplete(int color) {
Drawable wrappedDrawable = DrawableCompat.wrap(autoCompleteTextView.getBackground());
DrawableCompat.setTint(wrappedDrawable, color);
autoCompleteTextView.setBackgroundDrawable(wrappedDrawable);
}
এবং ইন Activity.onCreate:
setStyleForTextForAutoComplete(getResources().getColor(R.color.greyLight));
autoCompleteTextView.setOnFocusChangeListener((v, hasFocus) -> {
if(hasFocus) {
setStyleForTextForAutoComplete(getResources().getColor(R.color.blue));
} else {
if(autoCompleteTextView.getText().length() == 0) {
setStyleForTextForAutoComplete(getResources().getColor(R.color.greyLight));
}
}
});
আপনি পরিবর্তন করতে চান বার / লাইন রঙ এবং ইঙ্গিতটি পাঠ্যের রঙ এর TextInputLayout(কি অ্যাকসেন্ট রঙ সাধারণত হয়), তারপর শুধু এই শৈলী তৈরি করুন:
<style name="MyStyle">
<item name="colorAccent">@color/your_color</item>
</style>
তারপরে এটি আপনার থিমTextInputLayout হিসাবে প্রয়োগ করুন :
<android.support.design.widget.TextInputLayout
...
app:theme="@style/MyStyle" />
এটি মূলত একটি দৃশ্যে একটি থিম (স্টাইল নয়) সেট করে (পুরো ক্রিয়াকলাপের বিপরীতে)।
<style name="Widget.Design.TextInputLayout" parent="android:Widget">
<item name="hintTextAppearance">@style/TextAppearance.Design.Hint</item>
<item name="errorTextAppearance">@style/TextAppearance.Design.Error</item>
</style>
বিন্যাসের জন্য আপনি এই স্টাইলটিকে ওভাররাইড করতে পারেন
এবং আপনি অভ্যন্তর সম্পাদনা-আইটেমের স্টাইলও পরিবর্তন করতে পারেন।
<style name="EditScreenTextInputLayoutStyle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorControlNormal">@color/actionBar_background</item>
<item name="colorControlActivated">@color/actionBar_background</item>
<item name="colorControlHighlight">@color/actionBar_background</item>
<item name="colorAccent">@color/actionBar_background</item>
<item name="android:textColorHint">@color/actionBar_background</item>
</style>
এই স্টাইলটি টেক্সটইনপুটলয়েটে প্রয়োগ করুন apply
android:theme="@style/EditScreenTextInputLayoutStyle"
এ TextinputLayoutকোনও দৃশ্য নয়, তবে এটি তাঁর ব্লগ পোস্টে দিমিত্রিওস সিগুরিসLayout খুব সুন্দরভাবে বর্ণনা করেছেন । অতএব, আপনার এমন কোনও প্রয়োজন নেই যা কেবলমাত্র, তবে একটি ব্যবহার করুন । ব্লগ পোস্ট অনুসরণ করে, আমি নিম্নলিখিত সমাধান দিয়ে শেষ করেছি:StyleViewsTheme
আপনার styles.xmlসাথে শুরু করুন
<style name="TextInputLayoutAppearance" parent="Widget.Design.TextInputLayout">
<!-- reference our hint & error styles -->
<item name="android:textColor">@color/your_colour_here</item>
<item name="android:textColorHint">@color/your_colour_here</item>
<item name="colorControlNormal">@color/your_colour_here</item>
<item name="colorControlActivated">@color/your_colour_here</item>
<item name="colorControlHighlight">@color/your_colour_here</item>
</style>
এবং আপনার বিন্যাসে অ্যাড
<com.google.android.material.textfield.TextInputLayout
android:theme="@style/TextInputLayoutAppearance"
...