android gridview高度集
我在scrollview中有一个gridview。应用SimpleAdapter后,gridview的内容(行数)可能会发生更改。但是,gridview的高度保持不变 您知道如何动态更改gridview的高度吗?我尝试了几种设置gridview高度的方法,但没有一种有效 以下是我的部分代码:android gridview高度集,android,gridview,Android,Gridview,我在scrollview中有一个gridview。应用SimpleAdapter后,gridview的内容(行数)可能会发生更改。但是,gridview的高度保持不变 您知道如何动态更改gridview的高度吗?我尝试了几种设置gridview高度的方法,但没有一种有效 以下是我的部分代码: RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(400, 500); p.topMargin = 60; p.height =
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(400, 500);
p.topMargin = 60;
p.height = 600;
gridView.setLayoutParams(p);
但使用上述方法,gridview的高度保持不变
将覆盖gridview的onMeasure方法:
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
if(isExpanded()){
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
ViewGroup.LayoutParams params = getLayoutParams();
params.height = getMeasuredHeight();
}else{
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
XML文件的一部分:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/advanced_interface"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="ntu.fyp.sjy.securitycontroller.MainActivity">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/contact_source"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:text="@string/contact"/>
<Switch
android:id="@+id/contact_source_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/contact_source"
android:layout_alignBottom="@+id/contact_source"
android:layout_marginLeft="70dp"
android:layout_marginTop="40dp"
android:layout_alignParentRight="true"
android:layout_marginRight="26dp"
android:onClick="contactSourceToggle"/>
<ntu.fyp.sjy.securitycontroller.MyGridView
android:id="@+id/contact_source_grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/contact_source"
android:isScrollContainer="false"
android:numColumns="1"
android:verticalSpacing="1dp"/>
</RelativeLayout>
</ScrollView>
以下是要在gridview中调整的xml代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:shrinkColumns="0">
<TableRow
android:id = "@+id/source_tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/source_image"
android:layout_width="50dp"
android:layout_height="50dp"
android:paddingLeft="10dp"
android:scaleType="fitStart"/>
<TextView
android:id="@+id/source_app_title"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"/>
<CheckBox
android:id="@+id/source_app_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp" />
</TableRow>
<TableRow
android:id = "@+id/source_tableRow_internet"
android:layout_width = "fill_parent"
android:layout_height="wrap_content"
android:gravity = "center_horizontal"
android:visibility="gone">
<TextView
android:id="@+id/sink_internet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/internet"/>
<CheckBox
android:id="@+id/sink_internet_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow
android:id = "@+id/source_tableRow_file"
android:layout_width = "fill_parent"
android:layout_height="fill_parent"
android:gravity = "center_horizontal"
android:visibility="gone">
<TextView
android:id="@+id/sink_file"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/file"/>
<CheckBox
android:id="@+id/sink_file_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
根据用户输入,表行源\u tableRow\u文件和源\u tableRow\u internet可能设置为可见或消失。如何根据父滚动视图中的总行数调整gridview的高度???放置android:fillViewport=“true”属性。它将允许滚动视图填充整个高度或扩展(如果需要)。感谢您的回复!我试过了,但没用。还有其他建议吗?