【问题标题】:Android: How to set the maximum size of a Spinner?Android:如何设置 Spinner 的最大尺寸?
【发布时间】:2011-01-24 07:52:20
【问题描述】:

这是我的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
          android:layout_width="fill_parent" android:id="@+id/LinearLayout01"
         android:layout_height="wrap_content">

    <Spinner android:text="@+id/AutoCompleteTextView01"
                       android:id="@+id/Spinner01"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:width="130dp"></Spinner>
    <EditText android:layout_height="wrap_content"
              android:layout_width="wrap_content"
             android:id="@+id/Chapter" android:width="30dp"></EditText>
    <TextView android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:id="@+id/TextView01" android:text=":"></TextView>
    <EditText android:layout_height="wrap_content"
              android:layout_width="wrap_content" android:id="@+id/Verse"
              android:width="40dp"></EditText>

</LinearLayout>

我将此布局扩展为 AlertDialog 的视图。但是当我选择一个大元素时,文本字段会被推到右侧。有没有办法设置微调器的最大尺寸,所以在选择一个元素后,它会用省略号(“...”)或其他什么来缩短选择?

【问题讨论】:

    标签: android layout alert spinner


    【解决方案1】:

    Spinner 集合具有android:layout_width="wrap_content" 的大小由其内容决定。如果你想要椭圆的东西,这取决于你在你的SpinnerAdapter,当你创建你的行视图时。

    或者,硬连线一个大小固定的android:layout_width

    或者,不使用LinearLayout,而是使用RelativeLayout 并构建规则,使Spinner 占据行上的剩余空间,方法是将其锚定到屏幕左侧和左侧第一个EditText。虽然我不能 100% 确定如果内容太大会发生什么——它可能只是被截断了。

    【讨论】:

      【解决方案2】:

      无需使用自定义适配器。使用 android.R.layout.simple_spinner_item,然后将其从椭圆选框更改为结束椭圆。然后将您的新更改布局文件设置为布局 id 或使用此布局文件

      <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
          android:id="@android:id/text1"
          style="?android:attr/spinnerItemStyle"
          android:singleLine="true"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:paddingRight="10dp"
          android:ellipsize="end" />
      

      【讨论】:

        【解决方案3】:

        设置微调器 android:background="@null" 来解决问题。 这也会隐藏下拉图标的可见性

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-04-30
          • 1970-01-01
          • 1970-01-01
          • 2011-10-14
          • 1970-01-01
          • 2017-03-27
          • 1970-01-01
          • 2022-01-18
          相关资源
          最近更新 更多