如何在 Android 中将编辑文本与微调器合并?

How to merge an edittext with spinner in Android?

如何在 Android 中制作带有下拉菜单的 EditText? 作为参考,我添加了一张图片。我正在尝试将 edittext 与微调器结合使用,但我无法实现相同的效果。

任何人都可以添加建议或 xml 模型吗?

好吧,您可以使用水平方向的 LinearLayout 并为圆形边框创建自定义可绘制对象。

实施

首先,您需要通过创建一个新的 Drawable resource 文件来绘制圆角边框。

在您的 res/drawables 文件夹中创建 rounded_border.xml

rounded_border.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="4dp" />
            <stroke android:width="2dp" android:color="#2E2E2E" />
        </shape>
    </item>
</selector>

然后,您可以将 LinearLayout 添加到您的布局中,如下所示。

your_layout.xml

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@drawable/rounded_border"
    android:orientation="horizontal">

    <EditText
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:background="@null"
        android:paddingHorizontal="16dp"
        android:text="(504) 596-3245"
        android:layout_weight="2"/>

    <View
        android:layout_width="2dp"
        android:background="#2E2E2E"
        android:layout_height="match_parent"/>

    <Spinner
        android:layout_width="0dp"
        android:layout_height="match_parent"
        tools:listitem="@layout/spinner_item_text"
        android:layout_weight="1"/>

</LinearLayout>

备注

  • 您可以从 rounded_border.xml 自定义边框宽度、颜色和半径。

最终结果

可以参考这个 lib 演示:https://github.com/z2wenfa/SpinnerEditText

可以直接使用lib

dependencies {
        compile 'com.github.z2wenfa:SpinnerEditText:1.0.1'
}

或者可以参考:https://github.com/z2wenfa/SpinnerEditText/blob/master/spinneredittext-lib/src/main/java/com/z2wenfa/spinneredittext/SpinnerEditText.java