微调器高度扩展到屏幕底部

时间:2015-06-23 07:34:15

标签: android android-layout android-fragments

我在布局中有一个带有微调器的片段。微调器xml是:

        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/spCategory"
            android:spinnerMode="dialog"
            android:dropDownWidth="match_parent"
            android:prompt="@string/label_category_select" />

填充微调器就像这样:

    List<Category> categories = categoryRepository.getAll();
    CategoryAdapter adapter = new CategoryAdapter(this.getActivity(), categories);
    adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);

    spCategory= (Spinner)view.findViewById(R.id.spCategory);
    spCategory.setAdapter(adapter);

CategoryAdapter扩展了ArrayAdapter,我使用ViewHolder模式。适配器使用此自定义布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvSpinnerRowId"
        android:visibility="gone">
    </TextView>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvSpinnerRowName">
    </TextView>  
</RelativeLayout>

问题是布局中的微调器高度延伸到屏幕的底部。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

尝试修改.xml文件中的以下行

android:dropDownWidth="match_parent"

android:dropDownWidth="300dp"

或wrap_content

希望这应该有所帮助!

答案 1 :(得分:0)

经过一些研究后,您似乎无法操纵Spinner下拉列表或其他任何布局属性的高度。

这是因为下拉列表实际上是一个弹出式对话框,无法从Spinner视图中加入。

这个答案明确指出:http://stackoverflow.com/a/1918655/529138

所以接缝我必须使用问题中指定的android:layout_marginBottom。