我有一个editText和一个带下划线的微调器。我试图在同一行的edittext旁边设置微调器。请帮帮我。 Spinner总是略高于edittext的行。
<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>
答案 0 :(得分:1)
我遇到了同样的问题,我通过删除style="@style/Widget.AppCompat.Spinner.Underlined"
并为微调器设置背景来解决问题android: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 :(得分:-1)
这样做只需添加一个项目微调器自定义
arrayAdapter = new ArrayAdapter(this, R.layout.spinner_item, list)
并创建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" />
微调器应如下所示:
<Spinner
android:id="@+id/spn"
style="@style/Base.Widget.AppCompat.Spinner.Underlined"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
下面的代码将显示没有填充的项目: like this
只需添加另一项自定义: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)
吃水果和蔬菜