টেক্সটইনপুটটিতে ব্যবহারকারীদের ফোকাস দেওয়ার আগে এডিট টেক্সট ইঙ্গিতটি প্রদর্শন করা হচ্ছে না


97

আমি এডিটেক্সটস সহ ভাসমান লেবেল প্রদর্শন করতে সম্প্রতি প্রকাশিত অ্যান্ড্রয়েড ডিজাইন সমর্থন লাইব্রেরি ব্যবহার করছি । তবে আমি এমন সমস্যার মুখোমুখি হয়েছি যে ইউআইটি রেন্ডার করার সময় এডিটেক্সটটিতে থাকা ইঙ্গিতটি প্রদর্শিত হচ্ছে না, তবে আমি সম্পাদনাবেত্তগুলিতে ফোকাস করার পরে আমি ইঙ্গিতটি দেখতে পাচ্ছি।

আমার লেআউটটি নিম্নরূপ:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    <ScrollView
        android:id="@+id/ScrollView01"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin">

            <android.support.design.widget.TextInputLayout
                android:id="@+id/name_et_textinputlayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/activity_vertical_margin">

                <EditText
                    android:id="@+id/FeedBackerNameET"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/feedbackname"
                    android:inputType="textPersonName|textCapWords" />
            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:id="@+id/email_textinputlayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <EditText
                    android:id="@+id/FeedBackerEmailET"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/feedbackemail"
                    android:inputType="textEmailAddress" />

            </android.support.design.widget.TextInputLayout>

            <Spinner
                android:id="@+id/SpinnerFeedbackType"
                android:layout_width="fill_parent"
                android:layout_height="48dp"
                android:layout_marginTop="@dimen/activity_vertical_margin"
                android:entries="@array/feedbacktypelist"
                android:prompt="@string/feedbacktype" />

            <android.support.design.widget.TextInputLayout
                android:id="@+id/body_textinputlayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <EditText
                    android:id="@+id/EditTextFeedbackBody"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/feedbackbody"
                    android:inputType="textMultiLine|textCapSentences"
                    android:lines="5" />

            </android.support.design.widget.TextInputLayout>

            <CheckBox
                android:id="@+id/CheckBoxFeedBackResponse"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/activity_vertical_margin"
                android:text="@string/feedbackresponse" />

            <Button
                android:id="@+id/ButtonSendFeedback"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/activity_vertical_margin"
                android:text="@string/feedbackbutton" />
        </LinearLayout>
    </ScrollView>

</FrameLayout>

<View
    android:layout_width="match_parent"
    android:layout_height="5dp"
    android:background="@drawable/toolbar_shadow" />
</FrameLayout>

আমি TextInputLayoutব্যবহারের পদ্ধতিটির জন্য ইঙ্গিতটি সেট করার চেষ্টা করেছি setHintতবে কোনও ভাগ্য নেই।

mNameTextInputLayout = (TextInputLayout) v.findViewById(R.id.name_et_textinputlayout);
mNameTextInputLayout.setErrorEnabled(true);
mNameTextInputLayout.setHint(feedBackerNameET.getHint());

mEmailTextInputLayout = (TextInputLayout) v.findViewById(R.id.email_textinputlayout);
mEmailTextInputLayout.setErrorEnabled(true);
mEmailTextInputLayout.setHint(feedBackerEmail.getHint());

mBodyTextInputLayout = (TextInputLayout) v.findViewById(R.id.body_textinputlayout);
mBodyTextInputLayout.setErrorEnabled(true);
mBodyTextInputLayout.setHint(feedBackBody.getHint());

আমি একই সমস্যা আছে। আমার 4.1 এমুলেটরটিতে অ্যাপ্লিকেশনটি চালানো আমার অবাক করে দিয়েছিল, তবে আমার এম প্রিভিউতে সক্ষম হয়েছে নেক্সাস টেক্সটইনপুট লেআউটটি খারাপ ব্যবহার করছিল এবং এমবেডড এডিটেক্সটটির ইঙ্গিতটি প্রদর্শন করে নি।
সাশোমাশো

আপনি কি আপনার ইঙ্গিতের রঙটি পরীক্ষা করতে পারেন, বা আপনার দর্শন পটভূমির রঙ পরিবর্তন করার চেষ্টা করতে পারেন, সম্ভবত তারা সেখানে আছেন তবে রঙের কারণে আপনি দেখতে পাচ্ছেন না
Ultimo_m

@ অলটিমো_ম আমি মনে করি ইঙ্গিত রঙ অবশ্যই সমস্যা হবে না। তবে আমি পটভূমির রঙ পরিবর্তন করার পরে একবার দেখার চেষ্টা করব।
শজিল আফজাল

4
@ শাজিল আফজাল আমি আপনাকে এই পরামর্শটি বলছি কারণ আপনার মতো আমারও একই সমস্যা ছিল এবং আমি যখন ভিউটিতে ব্যাকগ্রাউন্ড যুক্ত করেছি তখন আমি ইঙ্গিতটি দেখলাম। আমি এটি একটি খণ্ডের মধ্যে ব্যবহার করছি। আমি জাভা থেকে কোনও কোড যুক্ত করিনি, আমি যা করলাম তা সবই এক্সএমএল থেকে
Ultimo_m

4
আমি এই সমস্যাটি দেখছি যখন আমি টুকরো টুকরো যোগ / সরান / তবে আমি যদি টুকরো টুকরো দেখায় / লুকিয়ে রাখি তবে আমি এই সমস্যাটি দেখছি না।
ডেভ জেনসেন

উত্তর:


84

হালনাগাদ:

এটি একটি বাগ যা লাইব্রেরির 22.2.1 সংস্করণে স্থির করা হয়েছে।

আসল উত্তর:

@ শ্যাক্সনিডার দ্বারা উল্লিখিত হিসাবে এটি একটি পরিচিত বাগ । গিথুব ব্যবহারকারী @ ljubisa987 সম্প্রতি একটি কাজের জন্য গেস্ট পোস্ট করেছেন:

https://gist.github.com/ljubisa987/e33cd5597da07172c55d

মন্তব্যে উল্লিখিত হিসাবে, কর্মক্ষেত্রটি কেবল অ্যান্ড্রয়েড ললিপপ এবং আরও পুরানোগুলিতে কাজ করে। এটি অ্যান্ড্রয়েড এম প্রিভিউতে কাজ করে না।


4
আচ্ছা অ্যান্ড্রয়েড এমডিসি একটি পূর্বরূপ সংস্করণ।
ডেভ জেনসেন

4
বিটিডাব্লু, দেখে মনে হচ্ছে বাগের স্থিতি এখন "ভবিষ্যতের প্রকাশ"।
ডেভ জেনসেন

4
মন্তব্য # 28 এখানে: কোড. google.com/p/android/issues/… আমার পক্ষে কাজ করে
J_Sizzle

4
22.2.1 সংস্করণে স্থির।
Jdruwe

4
আমরা কি নিশ্চিত যে এটি ভি 22.2.1 এ স্থির হয়েছে? অ্যান্ড্রয়েড সংস্করণ 5.1.1 এ চলমান আমি ডিজাইন লাইব্রেরি v22.2.1 এ এই সমস্যাটি অনুভব করছি। আমার একটি সরঞ্জামদণ্ডে দুটি সম্পাদনা পাঠ্য রয়েছে যা আমি ক্রিয়াকলাপে স্থানান্তরিত করছি এবং দৃষ্টি নিবদ্ধ না করা পর্যন্ত ইঙ্গিত পাঠ্যটি প্রদর্শিত হচ্ছে না।
স্টুস্টার্লিং

13

এটি অ্যান্ড্রয়েড ডিজাইন লাইব্রেরির একটি পরিচিত বাগ । এটি গৃহীত হয়েছে এবং নির্ধারিত হয়েছে

সুতরাং আপনার পরবর্তী অ্যান্ড্রয়েড ডিজাইন লাইব্রেরি রিলিজে এটি ঠিক করা উচিত।

এর মধ্যে, আপনি হ্যাকি-ফিক্সের জন্য ইস্যু ট্র্যাকারটি দেখতে পেলেন যা সেখানে পোস্ট হতে পারে তবে আমি এখন পর্যন্ত কোনও কিছুই জানি না।

এবং হ্যাঁ, এটি শুধুমাত্র ললিপপ এবং তারপরের উপর প্রভাব ফেলে।


4
এই ইস্যুটি 22.2.1 সংস্করণে স্থির করা হয়েছে
স্যাম

11

এটি আমার জন্য ডিজাইন লাইব্রেরি 23.1.1 এ কাজ করে:

টেক্সটইনপুটআলআউট এর এক্সএমএল বৈশিষ্ট্যে ইঙ্গিতটির রঙ সেট করুন:

    <android.support.design.widget.TextInputLayout
        ....
        android:layout_margin="15dp"
        android:textColorHint="@color/hintColor"
        android:layout_width="match_parent"
        ...

পাঠ্যরঙা হিন্টের সম্পত্তি এটি আমার জন্যও ঠিক করে দিয়েছে।
জেএম


5

আপনার নীচের মত ব্যবহার android.support.v7.widget.AppCompatEditTextকরা উচিত EditTextএবং সেট করা উচিতandroid:hint

<android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        <android.support.v7.widget.AppCompatEditText
                android:id="@+id/etx_first_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"                    
                android:inputType="text"
                android:hint="@string/hint_first_name"/>
    </android.support.design.widget.TextInputLayout>

3
   <android.support.design.widget.TextInputLayout
            android:id="@+id/editText1"
            android:layout_margin="15dp"
            android:layout_centerVertical="true"
            android:layout_width="match_parent"

            android:layout_height="wrap_content">

              <AutoCompleteTextView
                android:id="@+id/editText"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:singleLine="true"
                android:hint="Add City" />

          </android.support.design.widget.TextInputLayout>

এই কোডটি স্নিপেট ব্যবহার করুন activity নিশ্চিত করুন আপনার ক্রিয়াকলাপ অ্যাপকম্প্যাটএক্টিভিটি। এবং নির্ভরতা সর্বশেষতম সংস্করণগুলির সাথেও রয়েছে

compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:design:22.2.0'

অ্যান্ড্রয়েড স্টুডিওটি সর্বশেষ সংস্করণে আপডেট করুন। এখানে আউটপুট দেখুন


3

আপনি যদি প্রোগ্রামটিমে আপনার এডিটেক্সট ইঙ্গিতটি সেট করে থাকেন তবে এটি কার্যকর হবে না! আপনার নিজের পাঠ্য ইনপুটটিতে ইঙ্গিতটি সেট করতে হবে।

TextInputLayout textInputLayout = (TextInputLayout) findViewById(R.id.usernameTextInputLayout);
textInputLayout.setHint(getString(R.string.username_hint));

আপনি ভাবছেন এমন ক্ষেত্রে এক্সএমএলটি এখানে:

        <android.support.design.widget.TextInputLayout
            android:id="@+id/usernameTextInputLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.AppCompatEditText
                android:id="@+id/usernameEt"
                android:layout_width="match_parent"
                android:layout_height="@dimen/default_height"
                android:layout_marginEnd="@dimen/default_margin"
                android:layout_marginStart="@dimen/default_margin"
                android:maxLength="@integer/username"
                tools:hint="Username" />

        </android.support.design.widget.TextInputLayout>

3

এই সমস্যাটি v23.0.1সমর্থন ডিজাইন লাইব্রেরির সমাধান করা হয়েছে । এছাড়াও আমি আমার আপডেট appcompat-v7করার 23.0.1, compileSdkVersionকরতে 23& buildToolsVersionকরার 23.0.1মধ্যে build.gradle

android {    
compileSdkVersion 23
buildToolsVersion "23.0.1"
}

dependencies {
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
}

আপনি যখন সাপোর্ট ডিজাইনের সংস্করণ পরিবর্তন করছেন তখন কি সম্পূর্ণ এসএসডিকিভিশন, বিল্ডটুলস সংস্করণ এবং অ্যাপকম্প্যাট ভার্সন পরিবর্তন করা দরকার ??
শ্রীনিবাস

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

2

আমি এই কোড দিয়ে আমার সমস্যাটি সমাধান করেছি:

new Handler().postDelayed(
        new Runnable() {
            @Override
            public void run() {
                TextInputLayout til = (TextInputLayout) someParentView.findViewById(R.id.til);
                til.setHint("Your Hint Text");
                til.bringToFront();
            }
        }, 10);

এখানে চাবি bringToFront। এটি TextInputLayoutতার অঙ্কনটি আবারও করতে বাধ্য করে , যা করার মতো নয় invalidate()। প্রদর্শন করার চেষ্টা করছেন যদি TextInputLayoutএকটি উপর viewযে animationsবা tranistions, আপনি শেষে উপরের কোড চালানো প্রয়োজন animationবা transition। কেবলমাত্র নিশ্চিত হয়ে নিন যে উপরের কোডটি ইউআই-তে চলে thread


1

0

এডিট টেক্সট-এ ফস লিসটনার সেট করার সময় এই সমস্যাটি মনে হচ্ছে - এডিট টেক্সট প্রসারিত করার চেষ্টা করুন এবং একাধিক অন ফোকাসলিস্টনারকে সমর্থন করুন


0

সমস্যার সমাধান: আপনার অ্যাপের গোটো বিল্ড অ্যাড্রেডল এবং চেক ডিজাইনের লাইব্রেরি। 'com.android.support:design:22.2.1.1' কম্পাইল করুন এটি 22.2.1 বা আরও নতুন হওয়া উচিত।


0

সমস্যাটি হিন্টের রঙ। কিছু টাইপ করার সময় সাদা হয়ে যায়। দয়া করে ইঙ্গিতটির রঙ পরিবর্তন করুন বা পটভূমির রঙ পরিবর্তন করুন। টাইপ করার সময় আপনি ইঙ্গিতটি দেখতে পাবেন।


0

এটির পক্ষে আমার পক্ষে কাজ করার কারণে এর একটি সহজ সমাধান রয়েছে

<android.support.design.widget.TextInputLayout
    android:id="@+id/activity_login_til_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="27dp"
    android:layout_marginTop="24dp"
    android:padding="10dp"
    app:passwordToggleEnabled="true"
    app:passwordToggleTint="#000000"
    app:passwordToggleDrawable="@drawable/passwordviewtoggleselector"
    android:theme="@style/Base.TextAppearance.AppCompat">
      <!---- add this line and theme as you need ----->
    <android.support.design.widget.TextInputEditText
        android:id="@+id/activity_login_et_password"
        android:layout_width="match_parent"
        android:layout_height="58dp"
        android:hint="Password"
        android:inputType="textPassword"
        android:padding="10dp"
        android:textColor="#f5ab3a"
        android:textColorHint="#e6d2d1cf"
        android:textSize="20dp" />

</android.support.design.widget.TextInputLayout>

কেবলমাত্র Android: থিম = "@ শৈলী / বেস.টেক্সট অ্যাপিয়ারেন্স.অ্যাপকম্প্যাট" টেক্সটএডিটলাইআউটে যুক্ত করুন এবং এটির কাজ করা উচিত এবং আপনার প্রয়োজনমতো থিমটি পরিবর্তন করতে পারেন।



0

আমি কিছু আলাদা খুঁজে পেয়েছি।

এর জন্য স্টাইলটি সেট করার সময় fragment,

f1.setStyle(DialogFragment.STYLE_NO_FRAME,android.R.style.Theme_DeviceDefault_Light);

আমি যখন ভিন্ন স্টাইলগুলি চেষ্টা করেছিলাম তখন বাগটি চলে গিয়েছিল "Theme_DeviceDefault_Dialog"

একবার চেষ্টা করে দেখো.

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