我有一个微调器,它有13个项目。单击时,我想显示一个100dp高度(不是单个项目的高度)的下拉列表,它需要垂直滚动。因此它将显示3-4个项目。我想要某种可滚动的视图,但是高度到了屏幕的底部。
这是我尝试过的:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Spinner
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="100dp"
android:id="@+id/cycle_spinner"
android:background="@color/myoffwhite"
android:popupBackground="@color/myoffwhite"
android:scrollbars="vertical">
</Spinner>
<Spinner
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="100dp"
android:id="@+id/day_spinner"
android:background="@color/myoffwhite"
android:popupBackground="@color/myoffwhite"
android:scrollbars="vertical">
</Spinner>
</LinearLayout>
答案 0 :(得分:0)
对于下拉菜单中的单个项目, 您可以按如下所示指定高度。
@Override
public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
view.getLayoutParams().height = [specify height here];
return view;
}
对于下拉菜单本身的大小, 您可能要在下面使用。
spinner = (Spinner)findViewById(R.id.spinner);
try {
Field popup = Spinner.class.getDeclaredField("mPopup");
popup.setAccessible(true);
ListPopupWindow window = (ListPopupWindow)popup.get(spinner);
window.setHeight(123); // in pixel, replace with your size
} catch (Exception e) {
e.printStackTrace();
}