Align the underlined spinner in the same line next to the edit text.

I have editText and underlined counter. I am trying to install a spinner next to edittext on the same line. Please help me. Spinner is always slightly above the edittext line.

 <RelativeLayout
        android:id="@+id/relativeLayout4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/relativeLayout0"

        android:layout_alignParentLeft="true"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp">

        <ImageView
            android:id="@+id/ivRupee"
            android:src="@drawable/ic_rupee_new"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_centerVertical="true"  />
        <ImageView
            android:id="@+id/fake"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"/>


        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:id="@+id/editText"
            android:layout_toRightOf="@+id/ivRupee"
            android:layout_alignRight="@+id/fake"
            android:layout_marginRight="5dp"/>
        <Spinner

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/editText"
            android:gravity="center"
            android:layout_alignLeft="@+id/fake"
            android:layout_alignParentRight="true"
            android:id="@+id/spinner2"
            style="@style/Widget.AppCompat.Spinner.Underlined"/>

    </RelativeLayout>

I need something like this: enter image description here

+4
source share
2 answers

I had the same problem, I solved it by deleting style="@style/Widget.AppCompat.Spinner.Underlined"and setting the background in spinnerandroid:background="@drawable/custom_spinner_background"

custom_spinner_background.xml:

<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetBottom="8dp"
    android:insetLeft="4dp"
    android:insetRight="4dp"
    android:insetTop="4dp">
    <selector>
        <item
            android:state_checked="false"
            android:state_pressed="false">
            <layer-list>
                <item
                    android:left="-8dp"
                    android:right="-8dp"
                    android:top="-8dp">
                    <shape android:shape="rectangle">
                        <stroke
                            android:width="1dp"
                            android:color="@color/colorAccent" />
                        <padding android:bottom="4dp" />
                    </shape>
                </item>
            </layer-list>
        </item>
        <item>
            <layer-list>
                <item
                    android:left="-8dp"
                    android:right="-8dp"
                    android:top="-8dp">
                    <shape android:shape="rectangle">
                        <stroke
                            android:width="2dp"
                            android:color="@color/colorAccent" />
                        <padding android:bottom="4dp" />
                    </shape>
                </item>
            </layer-list>
        </item>
    </selector>
</inset>
+1
source

check this image

to do this just add a spinner custom element

 arrayAdapter = new ArrayAdapter(this, R.layout.spinner_item, list)

and create spinner_item.xml

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/spinner_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left"
tools:text="@tools:sample/lorem"
android:textColor="@android:color/black" />

The counter should look like this:

  <Spinner
          android:id="@+id/spn"
          style="@style/Base.Widget.AppCompat.Spinner.Underlined"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          />

:

: spinner_item_padding.xml

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/spinner_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:paddingBottom="12dp"
    android:paddingLeft="12dp"
    android:paddingTop="12dp"
    tools:text="@tools:sample/lorem"
    android:textColor="@android:color/black" />

java:

arrayAdapter = new ArrayAdapter(this, R.layout.spinner_item, list)
arrayAdapter.setDropDownViewResource(R.layout.spinner_item_padding)

-1

Source: https://habr.com/ru/post/1627576/


All Articles