【问题标题】:How to add a line at the bottom of spinner as like edittext in android如何在微调器底部添加一行,就像android中的edittext一样
【发布时间】:2018-03-24 01:59:00
【问题描述】:

您好,我正在制作演示应用程序,其中我正在使用EditText,其中底部出现一条线,可以,但不是微调器。

这怎么可能?

layout.xml

<EditText
    android:id="@+id/twitterEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/twitter_account"
    android:inputType="textWebEmailAddress" />


<Spinner
    android:id="@+id/countrySpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/country" />

<Spinner
    android:id="@+id/stateSpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/state" />

<Spinner
    android:id="@+id/citySpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/city" />

【问题讨论】:

  • 您想在用户选择美国列表等内容后显示用户的选择吗?请更清楚...
  • @TomerZ 我希望黑线与其他视图一样(edittext 电话、电子邮件)
  • @TomerZ 在用户从微调器中选择某些东西后,该行不应该总是存在
  • 您希望它像一个分隔符或显示选择的选项? (或者只是在那里,空的,如果还没有选择任何东西)
  • @TomerZ 这就像一个分隔符,但这不是我在编辑文本的情况下添加的附加视图。默认情况下在android材料设计中

标签: android


【解决方案1】:

我刚刚遇到了同样的问题,经过一段时间的研究,答案很简单:

    <Spinner
        ...            
        style="@style/Widget.AppCompat.Spinner.Underlined"
        ... />

【讨论】:

  • style="@style/Widget.AppCompat.Spinner.Underlined" 未定义。
  • 如何改变线条的颜色?
  • 要改变颜色,你必须修改你的风格,例如:
【解决方案2】:
<android.support.v7.widget.AppCompatSpinner
        ...            
        style="@style/Widget.AppCompat.Spinner.Underlined"
        app:backgroundTint="YOUR_COLOR_HERE"
        ... />

【讨论】:

    【解决方案3】:

    如果@style/Widget.AppCompat.Spinner.Underlined 未找到或未在style 下方工作,则用于底部下划线的微调器

                 <Spinner
                        android:id="@+id/spinner"
                        android:layout_width="wrap_content"
                        style="@android:style/Widget.Material.Spinner.Underlined"
                        android:layout_height="wrap_content"
                        />
    

    【讨论】:

      【解决方案4】:

      由于没有人发布实际答案,所以你去吧:

      <item android:bottom="1dp"
          android:left="-2dp"
          android:right="-2dp"
          android:top="-2dp">
          <shape android:shape="rectangle" >
              <stroke
                  android:width="0.5dp"
                  android:color="@android:color/black" />
          </shape>
      </item>
      

      【讨论】:

        【解决方案5】:

        那一行就是你在上面写的输入。微调器没有该行,因为它不是文本输入字段。 如果您也想在微调器下方有一条线,您可以通过以下方式将其插入下方:

        <Spinner
            android:id="@+id/firstSpinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:hint="@string/firstHint" />
        
        <!-- Separator view -->
        
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@android:color/black"/>
        
        <Spinner
            android:id="@+id/secondSpinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:hint="@string/secondHint" />
        
        <!-- Insert separator view again-->
        

        您可能需要稍微调整一下边距。另请注意,黑线仅在 Android 5.0 中出现,整个布局在较旧的 Android 上看起来会有很大不同。如果您只想在 Android 5.0 上进行黑线,则必须复制布局,并将其插入名为 layout-v21 的目录中,并将其他版本放在默认的 layout 目录中。

        【讨论】:

        • 我不想采用这种方法。我想通过样式和九个补丁图像来做到这一点。
        • 这个方法对我不起作用,只有style="@style/Widget.AppCompat.Spinner.Underlined"
        【解决方案6】:

        它的工作原理

        <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
                <item name="android:spinnerStyle">@style/holoSpinner</item>
        </style>
        
        <style name="holoSpinner" parent="Widget.AppCompat.Spinner.Underlined">
                <item name="android:textSize">16sp</item>
                <item name="android:textColor">#3F51B5</item>
        </style>
        

        快乐编码

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多