【问题标题】:Spinner dropdown height to match parent微调器下拉高度以匹配父级
【发布时间】:2015-11-27 22:20:56
【问题描述】:

是否可以调整Spinner 下拉菜单的高度以填满整个屏幕。现在我有 3 个项目可以动态添加到微调器适配器中,但这些项目只覆盖了屏幕的一半。我现在拥有的是这样的:

我想要的是这样的:

我可以添加空项目,但这不能解决不同屏幕尺寸的问题

我尝试在微调器上实现样式,但没有成功

<style name="MyCustomSpinner" parent="Widget.AppCompat.Spinner.DropDown">
    <item name="android:dropDownHeight">match_parent</item>
</style>

更新

我在操作栏和微调器之间有一个视图,所以我不能将layout_weight=1 用于我的微调器

【问题讨论】:

  • 意思是你不滚动它?
  • 你试过自定义微调器吗??
  • 我认为您应该使用 Button 代替 Spinner,并使用带有布局填充父项的自定义 AlertDialog 来显示您的 Spinner 项目。我认为它可能对您有所帮助。

标签: android android-spinner


【解决方案1】:

尝试将它与您的适配器一起使用。

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

【讨论】:

    【解决方案2】:

    实现这一点的唯一方法是编写您自己的视图,该视图就像一个微调器一样工作。

    【讨论】:

      【解决方案3】:

      在 yourspinner.xml 中, 将android:minHeight="48dp" 添加到 TextView 元素。看下面的例子-

      <TextView 
      
           android:id="@+id/textViewRowFacility"
           android:minHeight="50dp" />
      

      【讨论】:

        【解决方案4】:

        尝试将 Spinner 放入 LinearLayout 并将微调器的权重设置为 1,例如

        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >
        
                <Spinner
                    android:id="@+id/spinner"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1" />
        
            </LinearLayout>
        

        【讨论】:

          【解决方案5】:

          设置微调器的重量以占据整个空间。如果布局中没有其他视图,请使用以下代码:

          <Spinner
          
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_weight="1" />
          

          要了解更多关于安卓体重的信息,请参考this

          What does android:layout_weight mean?

          【讨论】:

          • 是的,但我的布局中有其他视图
          • 我希望下拉框只适合整个屏幕,而不是整个微调器本身
          【解决方案6】:

          尝试使用下面的代码

          ArrayAdapter<String> yourSpinnerAdapter = new ArrayAdapter<String>(this,
                      R.layout.spinner_item, yourItem) {
          
              @Override
              public View getDropDownView(int position, View convertView,
                      ViewGroup parent) {
                  convertView = super.getDropDownView(position, convertView,
                          parent);
          
                  convertView.setVisibility(View.VISIBLE);
                  ViewGroup.LayoutParams p = convertView.getLayoutParams();
                  p.height = 100; // assign the required height here
                  convertView.setLayoutParams(p);
          
                  return convertView;
              }
          };
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-02-14
            • 2017-05-25
            • 2015-10-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多