scrollview嵌套listview效果

来源:互联网 发布:淘宝的垃圾箱在哪里 编辑:程序博客网 时间:2024/06/05 17:25

网上看了一下代码,然后自己跟着实现了一遍,下面是代码:

package app.scrollviewincludelistview;import android.app.Activity;import android.app.ListActivity;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.ScrollView;public class MainActivity extends Activity {    private ListView listView;    private ScrollView scrollView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        scrollView= (ScrollView) findViewById(R.id.scrollview);        listView= (ListView) findViewById(R.id.list);        String[] strings=new String[30];        for (int i = 0; i <strings.length ; i++) {            strings[i]="aaaa"+i;        }        ArrayAdapter adapter;        adapter = new ArrayAdapter(this,R.layout.item,strings);        listView.setAdapter(adapter);        setListviewHeight(listView);    }    private void setListviewHeight(ListView listview){        ListAdapter listadapter=listview.getAdapter();        if (listadapter==null)            return;        int totalHeight=0;        for (int i = 0; i < listadapter.getCount(); i++) {            View listitem=listadapter.getView(i,null,listview);            //计算子项的高度和宽度            listitem.measure(0,0);            //统计所有子项的总高度            totalHeight+=listitem.getMeasuredHeight();        }        ViewGroup.LayoutParams params=listview.getLayoutParams();        // listView.getDividerHeight()获取子项间分隔符占用的高度        // params.height最后得到整个ListView完整显示需要的高度        params.height=totalHeight+listview.getDividerHeight()*(listadapter.getCount()-1);        listview.setLayoutParams(params);    }}


0 0