2015-09-27 132 views
-1

我想构建一个可滚动的android列表视图,其中每个行项目将分为两部分,即每个行项目将有两个单元格/列。每列将显示一个数据元素。Android列表视图

我也想给用户,设施添加数据元素到列表视图中下一个可用的单元格/列。

因此,假设第一行的两个单元格被填充,那么在列表视图的第二行的第一个单元格中将会有一个+符号。

单击+时,列表视图应向该单元格添加一个元素,并且+符号将切换到下一个单元格或下一行项目。

你能否建议如何构建这样的视图。我是否需要为行项目编写自定义视图?

如何确定每个行项目的高度?

回答

0

当然你需要写一个自定义视图

而且在自定义视图

你有三种可能性

View1 = One Column Data View and other Plus Button // wrap in LinearLayout 

View2 = One Column Data View and Other DataView 

View3 = Only Plus Button at Left 

基础上,即使项目显示1或3

if(items.getCount%2==0) 
{ 
//then plus button will be in first column 
set third Linear Layout Visible and other gone 
} 
else 
{ 
View1 Visible and other s gone 
} 
0

让我们打破这一点。 首先你声明你想建立一个Grid视图。为了简单起见,网格视图应该是activity.xml文件的根布局。在这里,您将使用android:numColumns属性设置列数。这里是什么看起来像一个示例代码:

<?xml version="1.0" encoding="utf-8"?> 
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/list" 
    android:numColumns="2" 
    android:orientation="vertical" 
    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" 
    tools:context="com.example.android.app_name.activity"/> 

接下来,您将需要一个.java文件打造的“源”,这将在此列表视图。您可以通过使用ArrayList的<>在java文件来实现这个目的,找到该GridView的视图组用下面的代码

GridView gridview = (GridView) findViewById(R.id.list); 

现在你可以使用建立一个ArrayList源。

ArrayList<YourElement> array = new ArrayList<YourElement>(); 

将项目添加到这个数组列表中的使用。新增方法

array.add(); 

我们数组列表连接到网格视图您将使用.setAdapter方法并传入的名称数组,在这种情况下是数组。

 gridview.setAdapter(array); 

这是尽我所能带你。希望这可以帮助其他人