1. 程式人生 > >ListView巢狀在ScrollView中,只顯示一行的解決辦法

ListView巢狀在ScrollView中,只顯示一行的解決辦法

自定義一個ListView,在onMeasure方法裡對其的高度進行重新設定
然後在xml裡將listview改成這個就行,java程式碼都可以不用改


import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

/**
 * Created by wt on 2017/2/21.
 */


public class ListScrollView extends ListView {
    public ListScrollView (Context context) {
        super
(context); } public ListScrollView (Context context, AttributeSet attrs) { super(context, attrs); } public ListScrollView (Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override /** * 重寫該方法,達到使ListView適應ScrollView的效果 */
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }