我在我的活动中使用Gridview。我还有一个CustomGridAdpater来显示每个网格上的图像和textview。
启动我的活动。我需要根据值动态创建网格行和列。
count = 4 2x2 grid
count = 9 3x3 grid
count = 16 4x4 grid
请告诉我如何实现此功能。
我的Gridview:
<GridView
android:id="@+id/Favorite_GridView"
android:layout_width="wrap_content"
android:layout_height="300dp"
android:layout_marginTop="10dp"
android:layout_below="@id/Date_RelativeLayout"
android:listSelector="@drawable/gridview_norecode_selector"
android:numColumns="auto_fit" />
我已将列设为android:numColumns =“auto_fit” 所以它默认为2列。
我也有自定义GridAdapter
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/grid_color_selector" >
<ImageView
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/Day_TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/gridview_line_norecord"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="24sp"
android:text="Hello" />
我也在我的活动中使用了这个功能
if(newList.length > 4)
{
mgridView.setColumnWidth(350);
}
但我担心在活动中手动提供值。因为我觉得它可能会为横向模式提供异常的UI。
请帮我解决。
答案 0 :(得分:0)
使用RecyclerView和GridLayoutManager。 在.xml中
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="2"
android:horizontalSpacing="@dimen/gridview_horizontal_spacing"
android:verticalSpacing="@dimen/gridview_vertical_spacing"
android:id="@+id/recyclerView" />
和
recyclerView.setLayoutManager(new GridLayoutManager(context , number));
或
gridview.setNumColumns(number);