সমস্ত সম্পাদনা পাঠ্যগুলিতে একটি সামঞ্জস্যপূর্ণ শৈলী সেট করুন (উদাহরণস্বরূপ)


84

আমি চেষ্টা করছি EditTextআমার অ্যাপ্লিকেশনটিতে সমস্ত কিছু ধারাবাহিকভাবে চেহারা পেতে। আমি সচেতন যে আমি এরকম কিছু করতে পারি:

<style name="App_EditTextStyle">
    <item name="android:background">@drawable/filled_roundededges_box_dark</item>
    <item name="android:textColor">#808080</item>
    <item name="android:layout_height">45dip</item>
</style>

তারপরে আমি কোনও বিশেষের সাথে EditTextএটি করে এই স্টাইলটি তৈরি করতে পারি :

<EditText ...
    style="@style/App_EditTextStyle
    ...>

তবে এইভাবে আমাকে EditTextআমার অ্যাপ্লিকেশনের প্রতিটি জন্য পৃথকভাবে শৈলীটি সেট করতে হবে যা ক্লান্তিকর, যদি ত্রুটিযুক্ত না হয় তবে সেট করতে হবে।

আমি কি এটির কোনও থিম বা কোনও কিছুর অংশ বানাতে পারি? এটি তাই আমাকে এই স্টাইলটি প্রত্যেকের সাথে যুক্ত করতে হবে না EditText। এই কল্পিত কোড ব্লকের মতো কিছু:

<style name="App_Theme" parent="@android:style/Theme.Holo">
   ... 
   <item name="android:EditTextSyle">@style/App_EditTextStyle</item>
   ...
<style>

এবং তারপরে আমার মধ্যে AndroidManifest.xmlএমন কিছু রয়েছে:

<application
    ....
    android:theme="@style/App_Theme">

আর ভোইলা! আমার EditTextপ্রতিটি দৃষ্টান্তের জন্য শৈলীর উল্লেখ না করেই আমার ধারাবাহিক স্টাইল থাকে।

উত্তর:


155

আপনার কাস্টম থিমের EditTextশৈলীতে (নামযুক্ত editTextStyle:) নির্দেশিত বৈশিষ্ট্যটি ওভাররাইড করুন :

<style name="App_Theme" parent="@android:style/Theme.Holo">
   <item name="android:editTextStyle">@style/App_EditTextStyle</item>
</style>

এবং প্রসারিত করতে আপনার কাস্টম শৈলী করুন Widget.EditText:

<style name="App_EditTextStyle" parent="@android:style/Widget.EditText">
    <item name="android:background">@drawable/filled_roundededges_box_dark</item>
    <item name="android:textColor">#808080</item>
    <item name="android:layout_height">45dip</item>
</style>

সম্পাদনা করুন:

আপনি যদি আরও নতুন অ্যাপকোম্প্যাট সম্পর্কিত থিমগুলি অ্যান্ড্রয়েড উপসর্গ ছাড়াই editTextStyle বৈশিষ্ট্যটি ব্যবহার করেন:

<style name="App_Theme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="editTextStyle">@style/App_EditTextStyle</item>
</style>

4
এটি এতটা প্রশংসনীয় এবং যৌক্তিক মনে হয়, তবুও এটি আমার পক্ষে কাজ করে বলে মনে হয় না। আমি কি কিছু মিস করতে পারি?
কোড কবি

4
@ মনিশগুপ্ত ঠিক কীভাবে কাজ করে না? আমি উপরের শৈলীগুলি পরীক্ষা করেছি এবং সেগুলি কাজ করে, তবে layout_height/heightসেখানে be োকানো যায় না কারণ অ্যান্ড্রয়েড সম্ভবত থিমের শৈলীর আগে এই বৈশিষ্ট্যগুলি পরীক্ষা করে এবং এটি তাদের অনুপস্থিত সম্পর্কে অভিযোগ করবে। তবে উপরের সাথে একটি কাস্টম অঙ্কনযোগ্য + বিভিন্ন পাঠ্য রঙের কাজ।
ব্যবহারকারীর

আপনার বর্ণনা অনুসারে আমার কাছে জিনিসগুলি ঠিকঠাকভাবে সেট করা আছে। আমার পুনরায় পোস্ট করার কোনও মানে নেই। আমি যাই হোক না কেন এটি আপনাকে দিচ্ছি। আমি কোথাও কিছু মিস করছি। আপনি যা লিখেছেন তা হ'ল যুক্তিযুক্ত এবং কাজ করা উচিত। আমি শীতল হয়ে যাওয়ার পরে এটি আবার দেখা হবে। ধন্যবাদ
কোড কবি

4
@ toobsco42 edittextStyleকোনও ক্ষেত্রে প্রয়োগ হয় না AutoCompleTextView(যদিও এটি একটি EditText)। autoCompleteTextViewStyleথিম.এক্সএমএল- এর বৈশিষ্ট্যটি দেখুন যা Widget.AutoCompleTextViewস্টাইল.এক্সএমএল ফাইলের মধ্যে একটি শৈলীতে নির্দেশ করে ।
ব্যবহারকারী

4
আমার পক্ষেও কাজ করে না। কিন্তু যদি আমি পরিবর্তন <item name="android:editTextStyle">করতে <item name="editTextStyle">, এটা ঠিক আছে। ধন্যবাদ!
স্যাম এইচ

52

@ লুক্সপ্রোগ উত্তরটি সঠিক তবে আমার পক্ষে কাজ করছে না। কিছু পরীক্ষা-নিরীক্ষার পরে, আমি আবিষ্কার করেছি যে এডিটেক্সটস্টাইল থেকে অ্যান্ড্রয়েড নেমস্পেস সরিয়ে ফেলা এটি আমার পক্ষে কাজ করে।

<style name="App_Theme" parent="@android:style/Theme.Holo">
   <item name="editTextStyle">@style/App_EditTextStyle</item>
</style>

এবং আপনার কাস্টম স্টাইলটি প্রসারিত করতে Widget.EditTextবা অ্যাপকম্প্যাট থিমটি ব্যবহার করে তৈরি করুন Widget.AppCompat.EditText:

<style name="App_EditTextStyle" parent="@android:style/Widget.EditText">
    <item name="android:background">@drawable/filled_roundededges_box_dark</item>
    <item name="android:textColor">#808080</item>
    <item name="android:layout_height">45dip</item>
</style>

4
আমার জন্য কাজ করে। তবে কেন এটি এমন আচরণ করে?
agগল_এই

4
AppCompatগ্রন্থাগারের সাথে কিছু করার থাকতে পারে । আপনার ক্রিয়াকলাপ কি প্রসারিত AppCompatActivity? ওহ অ্যান্ড্রয়েড বিকাশের রহস্য।
ম্যাট জুকোভস্কি

4
@ ম্যাটজুকোভস্কি আপনার মন্তব্যের ভিত্তিতে কিছু খনন করেছেন - সম্ভাব্য অপরাধী: AppCompat v7:21+পরবর্তী থেকে স্টাইলের স্ট্যান্ডার্ডটিতে "অ্যান্ড্রয়েড:" উপসর্গ ছাড়া স্ট্যান্ডার্ড থিম বৈশিষ্ট্যগুলি ব্যবহার করা দরকার needs
iflp

এই জন্য ধন্যবাদ।
আদম ভারেগেই

উইজেট.অ্যাপকম্প্যাট.এডিটটেক্সট না ব্যবহার করেও ঠিকঠাক কাজ করে .. তবে আমি উইজেট.অ্যাপকম্প্যাট.এডিট টেক্সট অ্যাক্সেস করতে পারি না। বলেছে "@ অ্যান্ড্রয়েড: শৈলী / উইজেট.অ্যাপকম্প্যাট.এডিটটেক্সট" "
নেরি

18

প্রথমে আপনার সম্পাদনা পাঠের জন্য শৈলীর সংজ্ঞা দিন। প্যারেন্ট স্টাইলটি নিশ্চিত হয়ে নিনandroid:Widget.EditText

<style name="CustomEditTextStyle" parent="android:Widget.EditText">

    <item name="android:textColor">#0F0F0F</item>
    <!-- ... More items here if needed ... -->
</style>

এর পরে, android:editTextStyleআপনার কাস্টম থিমটিতে বৈশিষ্ট্যটি ওভাররাইড করুন । সচেতন হন, আপনি যদি সমর্থন লাইব্রেরি ব্যবহার করছেন তবে আপনাকে অ্যাট্রিবিউটকে ওভাররাইড করতে হবে editTextStyle(অ্যান্ড্রয়েড নেমস্পেস ছাড়াই)।

<style name="App_Theme" parent="...">
   <item name="android:editTextStyle">@style/CustomEditTextStyle</item>
   <item name="editTextStyle">@style/CustomEditTextStyle</item> <!-- For compatibility with the support library -->
</style>

1

আপনার যদি কেবল পাঠ্য রঙের মতো কয়েকটি সাধারণ প্যারামিটার সেট করতে হয় তবে অ্যান্ড্রয়েড নেমস্পেসে কয়েকটি প্যারামিটার রয়েছে যা সম্পাদনা পাঠ্যের জন্য পৃথক স্টাইল ঘোষণার প্রয়োজন ছাড়াই এটি করবে। যেমন

<style name="MyStyle" parent="android:Theme.Material.NoActionBar">
    <item name="colorPrimary">@color/black</item>
    <item name="colorPrimaryDark">@color/white</item>
    <item name="colorAccent">@color/white</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:editTextColor">@color/black</item>
    <item name="android:editTextBackground">@color/black</item>
    ....
</style>

AppCompat এর নতুন সংস্করণের জন্য ব্যবহার editTextColorএবং সরান android:
আর্মিন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.