Предотвращение подчеркивания Spinner становится жирным во время клика - PullRequest
0 голосов
/ 12 мая 2018

Мне нужно добавить подчеркивание ниже моего Spinner.Из этих ссылок:

Я реализовал следующее:

In reminder_dialog_fragment.xml

<android.support.v7.widget.AppCompatSpinner
    android:id="@+id/spinner_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/Widget.AppCompat.Spinner.Underlined"
    android:theme="@style/MySpinnerTheme" />

In styles.xml

<style name="MySpinnerTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- set color for underline below Spinner -->
    <item name="colorControlActivated">#ffcfd8dc</item>
    <item name="colorControlHighlight">#ffcfd8dc</item>
    <item name="colorControlNormal">#ffcfd8dc</item>
</style>

Мне удалось отобразить underline ниже Spinner &изменить underline's color.Но во время spinner onclick / highlighted на Spinner есть animation effect:

  1. Ripple эффект на triangle (правая сторона Spinner)

  2. underline ниже Spinner становится bold

enter image description here

Как я могу сохранить эффект (1), но отключить эффект (2)?

Другими словами, я хочу, чтобы underline становилось bold при нажатии Spinner.

Ответы [ 3 ]

0 голосов
/ 12 мая 2018

Попробуйте использовать приведенный ниже фрагмент кода для удаления цвета Spinner Bottomline

    app:ms_basecolor="@android:color/transparent"
    app:ms_hightlightcolor="@android:color/transparent"

Я надеюсь, что это сработает для вас!

0 голосов
/ 12 мая 2018

Есть несколько способов сделать это.Попробуйте сделать фон прозрачным.

<Spinner
  android:id="@+id/spTest"
  android:layout_margin="10dp"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:prompt="@string/spinner_prompt"
  android:background="@android:color/transparent"
  android:entries="@array/spinnerList"/>

Или создайте EditText, как показано в коде ниже:

<EditText
    android:id="@+id/etTest"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    android:layout_margin="10dp"
    android:background="@drawable/edittext_rectangale_border"
    android:drawableEnd="@drawable/ic_arrow_drop"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:hint="@string/spinner_prompt"
    android:inputType="text"
    android:padding="5dp" />

Вы можете найти drop_down_arrow из векторного актива,Для Границы EditText создайте чертеж с именем "edittext_rectangle_border.xml" и вставьте в него приведенный ниже код.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#FFFFFF"/>
    <stroke
        android:width="3dp"
        android:color="#B9B9B9"/>
    <padding
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp"/>
    <corners
        android:bottomLeftRadius="3dp"
        android:bottomRightRadius="3dp"
        android:topLeftRadius="3dp"
        android:topRightRadius="3dp"/>
</shape>

После выполнения вышеуказанных действий откройте файл Java и создайтеДиалог на EditText нажмите с помощью onSetClickListner и отобразите список в диалоговом окне.Позже при выборе элемента установите текст EditText.

Надеюсь, вы найдете его полезным.

0 голосов
/ 12 мая 2018

может быть, вы можете попробовать

 android:elevation="5dp"

в xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...