我在布局中有一个带有微调器的片段。微调器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>
问题是布局中的微调器高度延伸到屏幕的底部。
我错过了什么?
答案 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。