【问题标题】:Android: Down arrow disappears after setting spinner backgroundAndroid:设置微调器背景后向下箭头消失
【发布时间】:2021-02-21 22:56:49
【问题描述】:

我有一个矩形框,我将微调器背景设置为,但我想保留微调器附带的向下箭头。这是我的矩形代码:

<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff" />
<stroke android:width="2dp" android:color="#80000000" />
<padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp" />

见下图:

左边是我目前拥有的,右边是我想要实现的,或者至少在某个地方有一个向下箭头。有关如何创建此背景的任何想法?

【问题讨论】:

    标签: java android xml spinner


    【解决方案1】:

    我在 uiautomator 的帮助下检查了您的代码,但微调器下拉箭头未与背景设置一起显示。

    您可以使用 LayerList 并拥有一个重力正确的位图。现在位图是设置为微调器的背景的一部分。

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="#ffffff"/>
        <stroke
            android:width="2dp"
            android:color="#80000000"/>
        <padding
            android:bottom="2dp"
            android:left="2dp"
            android:right="2dp"
            android:top="2dp"/>
    
    </shape>
    </item>
    
        <item>
            <bitmap
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="right"
                android:src="@mipmap/ic_launcher" />
        </item>
    </layer-list>
    

    结果:

    当然,位图周围没有边框。您可以查看此链接How to change the spinner background design and color for android?,看看它是否符合您的要求

    【讨论】:

    • @user1197993 很高兴它有帮助。我尝试查看源代码,甚至设置微调器的样式以使其更简单且不老套,但一无所获。如果我找到更好的选择,我会更新帖子
    • 你知道如何改变位图的大小吗?它太大了,将布局宽度和高度设置为某些值没有任何作用。
    • @user1197993 developer.android.com/training/displaying-bitmaps/…。检查文档看看是否有帮助。
    【解决方案2】:

    检查以下 XML 代码以实现您的需要。它类似于 Raghunandan 发布/回答的内容,但有一些小的调整。希望对你有帮助,

    <?xml version="1.0" encoding="UTF-8" ?>
    <selector xmlns:android = "http://schemas.android.com/apk/res/android">
    
      <item>
        <layer-list>
          <item>
            <shape android:thickness="2dp">
              <gradient android:angle = "90" android:endColor = "#ffffff" android:startColor = "#ffffff" android:type = "linear"/>
    
              <stroke android:width = "1dp" android:color = "#80000000"/>
    
              <corners android:radius = "5dp"/>
    
              <padding android:bottom = "3dp" android:left = "3dp" android:right = "3dp" android:top = "3dp"/>
            </shape>
          </item>
    
          <item>
            <rotate
               android:fromDegrees = "90"
               android:pivotX = "85%"
               android:pivotY = "50%"
               android:toDegrees = "90">
              <shape
                 android:shape = "line"
                 android:thickness="2dp"
                 android:top = "1dp">
                <stroke
                   android:color="#80000000"
                   android:width = "1dp"/>
              </shape>
            </rotate>
          </item>
          <item>
            <bitmap
    
               android:gravity = "center|right" android:src = "@drawable/abc_btn_check_to_on_mtrl_015"/>
    
          </item>
        </layer-list>
      </item>
    
    </selector>
    

    在我在代码中添加的占位符图像中使用所需的可绘制对象。

    希望对你有帮助,

    祝你好运

    【讨论】:

      猜你喜欢
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-18
      相关资源
      最近更新 更多