JOG*_*JOG 26 android listview resize refresh
例如ListView,我不能让我的元素正确调整大小.
我有一个ListActivity搜索,一个仪表板,一个编辑框和一个列表视图.想法是在键盘显示时隐藏操作栏.
我扩展了LinearLayout,听取视图大小的变化(这里推荐):
public class SizeChangingLinearLayout extends LinearLayout {
//...
@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld)
{
View actionbar = mainView.findViewById(R.id.actionbar);
if (yNew > yOld)
actionbar.setVisibility(View.VISIBLE);
else if (yNew < yOld)
actionbar.setVisibility(View.GONE);
super.onSizeChanged(xNew, yNew, xOld, yOld);
}
}
Run Code Online (Sandbox Code Playgroud)
操作栏的隐藏/显示按预期工作,但ListView在隐藏操作栏的高度下方有一个间隙.一旦任何图形改变(例如在编辑框中书写),ListView填补空白.隐藏键盘时,反向出现类似的行为.

[编辑]
更改其他布局时也会出现同样的问题.直接更改节目中的内容,但Visibility在onSizeChanged其他一些用户操作重新绘制这些视图之前,不会显示更改大小和边距.无效无效onSizeChanged.
[/编辑]
我试图通过以下方式刷新图形:
invalidate-ing无论是定制的LinearLayout和ListView (推荐这里)notifyDataSetChanged 在列表的适配器上forceLayout......还有更多,没有成功.为什么一开始ListView不调整大小?我是否必须onLayout在扩展的LinearLayout中覆盖?我错过了什么?
asp*_*ame 37
在最后添加以下内容onSizeChanged()将解决它:
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
requestLayout();
}
});
Run Code Online (Sandbox Code Playgroud)
请参阅此问题的答案:在更改大小后,自定义ViewGroup内的视图无法呈现
| 归档时间: |
|
| 查看次数: |
16487 次 |
| 最近记录: |