android 的 spinner 点击后弹出的窗口为何不能自适应宽度
时间: 2024-03-27 12:41:15 浏览: 109
Android Spinner 的弹出窗口默认情况下是根据 Spinner 的宽度来设置的,因此可能会出现宽度不足的情况。要实现自适应宽度,可以通过自定义 Spinner 的 Adapter,在 Adapter 的 getView 方法中动态设置弹出窗口的宽度。具体实现方法如下:
1. 在自定义的 Adapter 中,重写 getView 方法,设置弹出窗口的宽度为 Spinner 的宽度。
```
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//...
Spinner spinner = (Spinner) parent;
int spinnerWidth = spinner.getWidth();
popupWindow.setWidth(spinnerWidth);
//...
}
```
2. 在 Spinner 的 OnItemSelectedListener 中,设置弹出窗口的宽度为 Spinner 的宽度。
```
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
int spinnerWidth = spinner.getWidth();
popupWindow.setWidth(spinnerWidth);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
```
这样就能实现 Spinner 弹出窗口自适应宽度的效果了。
阅读全文