Mos*_*tor 5 android listview android-layout android-listview
我希望调整 ListView 中行的大小,以便屏幕上可以容纳其中的六行。为此,我需要知道 ListView 有多少垂直空间(而不是整个屏幕)。但是,由于尚未渲染任何视图,因此在 onCreate() 中无法进行任何测量。
如果我在渲染后进行测量,ListView 可能会被绘制然后调整大小,这可能会分散注意力。在渲染 ListView 之前建立必要的行高的最明智的方法是什么?
在onCreate你可以得到你的屏幕的高度并除以6。现在在你getView你可以得到每个项目的顶部布局的参考,假设你已经将它的id命名为root,即它是一个LinearLayout.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = convertView;
    if(view == null){ some inflate }
    LinearLayout root = (LinearLayout) view.findViewById(R.id.root);
    LayoutParams lp = root.getLayoutParams();
    lp.height = screenHeight/6;
    root.setLayoutParams(lp);
    ....
    return view;
}
是的,这假设ListView是全屏的。如果您有其他布局,则必须考虑这些高度。
那么你的身高将是:int heightForEachItem = (screenHeight - otherlayoutsHeightTogether) / 6;
| 归档时间: | 
 | 
| 查看次数: | 1375 次 | 
| 最近记录: |