我需要有一个gridlayout的gridview。每个linearLayout必须有一个imageview和一个有更多孩子的相对布局的孩子。
我正在搜索创建LinearLayouts网格视图的教程/示例,但我找不到任何内容。
有人有教程或可以给我一些例子或帮助做到这一点吗?
感谢
答案 0 :(得分:9)
是的,这是可能的,而且非常简单。使用GridView时,请为其提供适配器。在适配器的getview
方法中,您可以创建任何您喜欢的视图并将其返回。例如,您可以从XML中扩展视图 - 并且该xml可能包含LinearLayout
。或者,您可以在该方法中动态创建线性布局,并向其中添加其他组件。
在Google上查看这篇文章:http://developer.android.com/resources/tutorials/views/hello-gridview.html
更新:一个小例子
在res/layout/item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingTop="0dip"
android:paddingBottom="0dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView android:id="@+id/TxtName"
android:scrollHorizontally="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:layout_weight="0.2"
android:padding="2dp"/>
<TextView android:id="@+id/TxtPackage"
android:scrollHorizontally="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:textColor="@android:color/black"
android:padding="2dp"/>
</LinearLayout>
然后在你的适配器中:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//get the item corresponding to your position
LinearLayout row = (LinearLayout) (convertView == null
? LayoutInflater.from(context).inflate(R.layout.item, parent, false)
: convertView);
((TextView)row.findViewById(R.id.TxtName)).setText("first text");
((TextView)row.findViewById(R.id.TxtPackage)).setText("second text");
return row;
}