需求:
ScrollView嵌套ListView的效果
问题:
ListView不能随viewitem的个数自动改变高度
网上有很多的办法来处理这个问题,但是LinearLayoutListView 也不失为一个好办法。
代码:
代码1:xml中调用LinearLayoutListView
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<com.think.read.LinearLayoutForListView
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/iread_read_letter_comments">
</com.think.read.LinearLayoutForListView>
</ScrollView>
代码2:LinearLayoutForListView.java
package ......;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
public class LinearLayoutForListView extends LinearLayout {
private AdapterForLinearLayout adapter;
private OnClickListener onClickListener = null;
/**
*
*/
public void bindLinearLayout() {
int count = adapter.getCount();
for (int i = 0; i < count; i++) {
View v = adapter.getView(i, null, null);
v.setOnClickListener(this.onClickListener);
if (i == count - 1) {
LinearLayout ly = (LinearLayout) v;
ly.removeViewAt(2);
}
addView(v, i);
}
Log.v("countTAG", "" + count);
}
public LinearLayoutForListView(Context context) {
super(context);
}
public LinearLayoutForListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
*
*
* @return adapter
*/
public AdapterForLinearLayout getAdpater() {
return adapter;
}
/**
*
*
* @param adpater
*/
public void setAdapter(AdapterForLinearLayout adpater) {
this.adapter = adpater;
bindLinearLayout();
}
/**
*
*
* @return
*/
public OnClickListener getOnclickListner() {
return onClickListener;
}
/**
*
*
* @param onClickListener
*/
public void setOnclickLinstener(OnClickListener onClickListener) {
this.onClickListener = onClickListener;
}
}
代码3:AdapterForLinearLayout
package .......;
import java.util.List;
import java.util.Map;
import com.think.R;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widge