我必须使用Gridview创建UI。图像是动态的,因为它来自网络服务。
我可以使用xml定义列号,但第0个索引处的项目必须有一个完整的图像,然后其余部分应分成列。
感谢任何帮助。
答案 0 :(得分:2)
你应该使用TableLayout
。 GridView
不支持跨越操作。
将子项排列为行和列的布局。一个 TableLayout由许多TableRow对象组成,每个对象定义一个 行(实际上,你可以有其他孩子,这将被解释 下面)。 TableLayout容器不显示其边框线 行,列或单元格。每行有零个或多个单元格;每个细胞 可以容纳一个View对象。该表具有与行一样多的列 最细胞。表格可以将单元格留空。 细胞可以跨越 列,就像在HTML中一样。
您可以看到示例here。
答案 1 :(得分:1)
基于Jack K Fouani。一些更改将保留整个图像的裁剪:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- Large Image -->
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true" />
<!-- //Large Image -->
<!-- Small Images -->
<GridView
android:id="@+id/list"
android:numColumns="auto_fit"
android:columnWidth="120dip"
android:gravity="center"
android:layout_width="fill_parent"
android:layout_weight="1"
android:layout_height="0dip" >
</GridView>
<!-- Small Images -->
</LinearLayout>
快速解决方案,其他人有很多工作,尝试一下。你可能会喜欢它。
GridView gv = findViewById(R.id.list);
gv.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
}
@Override
public void onScroll(AbsListView arg0, int firstVisibleItem, int arg2, int arg3) {
// TODO Auto-generated method stub
ImageView iView = findViewById(R.id.image);
if (firstVisibleItem == 0)
{
iView.setVisibility(View.VISIBLE);
}
else
{
iView.setVisibility(View.Gone);
}
}
});
答案 2 :(得分:0)
您可以使用GrideView
权重= 1及以上添加ImageView
例如,如果您想使用GrideView
,这是完整的示例布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- Large Image -->
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="0dip"
android:layout_gravity="center_horizontal"
android:scaleType="centerCrop" />
<!-- //Large Image -->
<!-- Small Images -->
<GridView
android:id="@+id/list"
android:numColumns="auto_fit"
android:columnWidth="120dip"
android:gravity="center"
android:layout_width="fill_parent"
android:layout_weight="1"
android:layout_height="0dip" >
</GridView>
<!-- Small Images -->
</LinearLayout>
此布局与您的请求完全相同
答案 3 :(得分:0)
我通过使用ListView解决了它。添加了一个listView Header的视图。然后在列表视图的子项内部添加了两个视图。在自定义适配器的getView方法中,我每次都将位置增加一个。
P.S:如果要使用无限适配器实现上述视图,则必须找到更好的解决方案。