Spinner下拉高度以匹配父级

时间:2015-11-16 06:24:40

标签: android android-spinner

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

enter image description here

我想要的是这样的:

enter image description here

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

我试图在微调器上实现一个样式,但它没有工作

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

更新

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

6 个答案:

答案 0 :(得分:1)

尝试在适配器上使用它。

|

答案 1 :(得分:1)

实现这一目标的唯一方法是编写自己的视图,就像一个微调器一样。

答案 2 :(得分:-1)

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

<TextView 

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

答案 3 :(得分:-1)

尝试将您的Spinner放入LinearLayout&amp;将微调器重量设置为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>

答案 4 :(得分:-1)

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

<Spinner

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

要了解有关Android体重的更多信息,请参阅this

What does android:layout_weight mean?

答案 5 :(得分:-1)

尝试使用以下代码

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;
    }
};