Android:在设置Spinner背景后,下箭头消失

4

我有一个矩形框,我将旋转器背景设置为该框,但我想保留随旋转器一起出现的向下箭头。以下是我的矩形框代码:

<?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" />

请看下面的图片:

enter image description here

左边是我目前拥有的,右边是我正在尝试实现的,或者至少在其中某个地方有一个向下箭头。 你有什么创意来创建这种背景吗?
3个回答

2

我使用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?,看看它是否符合您的要求。

enter image description here


你知道如何改变位图的大小吗?它太大了,将布局的宽度和高度设置为某些值并没有任何作用。 - user112016322
@user1197993 请查看文档,看看是否有帮助。http://developer.android.com/training/displaying-bitmaps/load-bitmap.html。 - Raghunandan

0
在一个RelativeLayout中添加Spinner。 在我的情况下,图标消失是因为父布局的高度和宽度。
<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:background="@drawable/startbg"
        android:layout_marginLeft="5dp"
        >
    <Spinner
        android:id="@+id/timerSpin"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:spinnerMode="dropdown"
        android:backgroundTint="@color/white"
        android:layout_centerInParent="true"
        android:textColor="@color/white"
        android:pointerIcon="arrow"
         />
    </RelativeLayout>

-1
请查看下面的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>

在代码中使用我添加的占位图像中所需的drawable。

希望这能帮到你,

祝你好运


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接