小编nlm*_*m01的帖子

根据里面的多行textview动态设置ListView Height

我正在使用基本适配器动态设置列表视图中的数据.我试图动态设置listview高度.如果里面的textview是单行的话,它可以很好地工作.但是,如果textview是多行的,则高度设置不正确.仅考虑单行textview设置高度.如何正确设置包含多行textview的列表视图项的高度.这是代码:

片段代码:

ListView mlistNews=(ListView)rootView.findViewById(R.id.news_listView);
mlistNews.setAdapter(new NewsAdapter(getActivity(),params_news));
Utils.setListViewHeightBasedOnItems(mlistNews);
Run Code Online (Sandbox Code Playgroud)

实用功能:

public static boolean setListViewHeightBasedOnItems(ListView listView) {

    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter != null) {

        int numberOfItems = listAdapter.getCount();

        // Get total height of all items.
        int totalItemsHeight = 0;
        for (int itemPos = 0; itemPos < numberOfItems; itemPos++) {
            View item = listAdapter.getView(itemPos, null, listView);
            item.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
            totalItemsHeight += item.getMeasuredHeight();
        }

        // Get total height of all item dividers.
        int totalDividersHeight = listView.getDividerHeight() *
                (numberOfItems - 1);
        // Get …
Run Code Online (Sandbox Code Playgroud)

android listview android-layout android-listview android-adapter

6
推荐指数
1
解决办法
6835
查看次数