防止 Spinner Item 在 AlertDialog 后面绘制
Prevent Spinner Item to Draw Behind AlertDialog
我有一个自定义 AlertDialog
,其中一个视图填充了 DialogFragment
。此片段包含一个 ListView
,其中包含一个 Spinner
。请看这张截图:
问题是当我滚动项目和 select 微调器时,它偶尔会在对话框后面绘制项目列表,如下所示:
我想不知何故,当列表仍在滚动时,由 SCROLL_STATE_FLING
状态定义,项目有点 暂时失去其父级 。
我在想一个解决方案,就是在滚动完成之前将视图设置为不可聚焦,如下所示:
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == SCROLL_STATE_IDLE) {
view.setFocusable(true);
} else {
view.setFocusable(false);
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
但是,问题仍然存在。我该如何解决这个问题?
通过从 ListView
移动到 RecyclerView
自己解决了它。 ListView
的行为
一定有问题
我有一个自定义 AlertDialog
,其中一个视图填充了 DialogFragment
。此片段包含一个 ListView
,其中包含一个 Spinner
。请看这张截图:
问题是当我滚动项目和 select 微调器时,它偶尔会在对话框后面绘制项目列表,如下所示:
我想不知何故,当列表仍在滚动时,由 SCROLL_STATE_FLING
状态定义,项目有点 暂时失去其父级 。
我在想一个解决方案,就是在滚动完成之前将视图设置为不可聚焦,如下所示:
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == SCROLL_STATE_IDLE) {
view.setFocusable(true);
} else {
view.setFocusable(false);
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
但是,问题仍然存在。我该如何解决这个问题?
通过从 ListView
移动到 RecyclerView
自己解决了它。 ListView
的行为