在開發中用到了需要ScrollView嵌套GridView,或者嵌套listview,或者listview嵌套listview等的情況,由於這兩款控制項都內建捲軸,當他們碰到一起的時候便會出問題,即GridView(子view)內容會顯示不全。
解決辦法,自訂一個GridView控制項或者 listview
- public class MyGridView extends GridView {
- public MyGridView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
- public MyGridView(Context context) {
- super(context);
- }
- public MyGridView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
- @Override
- public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- int expandSpec = MeasureSpec.makeMeasureSpec(
- Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
- super.onMeasure(widthMeasureSpec, expandSpec);
- }
- }
//////////////////listview//////////////////
import android.content.Context;import android.util.AttributeSet;import android.widget.ListView;
public class myListView extends ListView {
public myListView(Context context, AttributeSet attrs) { super(context, attrs); }
public myListView(Context context) { super(context); }
public myListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); }}