studio - user input android




كيف تخفي underbar في EditText (8)

إذا كان نص التعديل يحتوي بالفعل على خلفية ، فيمكنك استخدام المتابعة.

android:textCursorDrawable="@null"

كيف يمكنني إخفاء تحت سطح المكتب EditText (خط الطلب مع القليل من serifs في نهايات)؟

قد يكون هناك طريقة أفضل للقيام بما أريد: لدي تخطيط مع EditText. عادةً ما يعرض هذا بشكل جيد حيث يمكن للمستخدم النقر عليه والبدء في إدخال نص أو تعديله.

ومع ذلك ، في بعض الأحيان ، أود استخدام نفس التخطيط (يبسط المنطق الآخر) لعرض نفس البيانات بطريقة القراءة فقط. أريد أن يكون العرض التقديمي متشابهًا - يجب أن يكون له نفس الارتفاع ونفس الخط ، ولكن ليس لديه الشريط السفلي.

كقياس لوقف الفجوة ، سأقوم بتنفيذ ذلك عن طريق إزالة EditText واستبدال TextView. أعتقد أن ذلك سيعطي النتائج المرجوة ، ولكن يبدو أن الالتفاف طريقة مكلفة للقيام بشيء يجب أن يكون سهلاً عن طريق تغيير السمات.


اكتشفت الشيء الأكثر فضولاً إذا قمت بتعيينها إلى قيمة null باستخدام "ربط البيانات": android:background="@{null}"

ثم لا تتم إزالة الخلفية فقط ، ولكن لا يزال العرض يحتوي على المساحة التي تم حسابها من الخلفية الافتراضية. لذلك لسبب ما لا يزيل الإعداد الفارغ المؤجل الحشو من bg السابق ..؟ يتم ترك الحشو في العرض / أعلى / يمين 4dp ، القاع 13dp (من مستوى المحاكي 21).

قد لا يكون لها نفس النتيجة النهائية على جميع مستويات API ، لذلك حذار! أخبرني شخص ما إذا كنت تختبر ذلك وتجده موثوقًا به. (لاحظ أيضًا أن هذا الحشو السفلي ينقطع بسبب هذا الخط الذي كان موجودًا في النص الأصلي. لذلك قد تحتاج إلى تغييره في XML ، أو إعادة تعيينه في الشفرة بعد تحميله على أعلى يساوي ...


تعيين الخلفية إلى فارغة.

android:background="@null"

ما فعلته هو إنشاء شكل drawable وتعيين ذلك كخلفية:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <padding
        android:top="8dp"
        android:bottom="8dp"
        android:left="8dp"
        android:right="8dp" />

    <solid android:color="#fff" />

</shape>

ملاحظة: لقد استخدمت في الواقع @dimen و @color قيمًا للحشرات ، ولكنني قمت بتبسيط ملف الشكل هنا من أجل الوضوح.


يجب عليك تعيين minWidth أيضًا ، وإلا سيختفي المؤشر إذا كان النص فارغًا.

        <EditText
            android:id="@+id/et_card_view_list_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:minWidth="30dp"
            android:layout_weight="1"
            android:inputType="text"
            android:text="Name"
            android:background="@android:color/transparent"
            />

يرجى تعيين خلفية edittext الخاصة بك

android:background="#00000000"

سوف تعمل.


يمكنك القيام بذلك برمجياً باستخدام setBackgroundResource :

editText.setBackgroundResource(android.R.color.transparent);

يمكنك تعيين قيمة backgroundTint لـ EditText إلى لون معين. إذا قمت بتعيين لون شفاف ، يجب أن تذهب تحت العارضة.

android:backgroundTint="@color/Transparent"

<color name="Transparent">#00000000</color>

ولكن يمكنك استخدام هذا في Api v21(Lollipop) أو أعلى





android-edittext