Android Listview 5“;项目“;水平和垂直滚动
我想知道如何使用垂直滚动将每行5个项目的Android Listview 5“;项目“;水平和垂直滚动,android,android-listview,vertical-scrolling,Android,Android Listview,Vertical Scrolling,我想知道如何使用垂直滚动将每行5个项目的列表视图设置为水平您必须使用自定义列表适配器创建一个每行5个项目的垂直列表视图。您可以在XML布局文件中描述行的布局。例如,请参见。您需要使用Listview创建布局文件 <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> 您需要创建一个自定义行,然后有6
列表视图
设置为水平您必须使用自定义列表适配器创建一个每行5个项目的垂直列表视图。您可以在XML布局文件中描述行的布局。例如,请参见。您需要使用Listview创建布局文件
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" />
您需要创建一个自定义行,然后有60行 让我来告诉你一声
ArrayList<String> cars
然后创建一个像这样的类
public class CarListItem extends LinearLayout {
public SingleRowListItem(Context context) {
super(context);
LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.list_item_cars_row, this, true);
}
public void fillItem(int firstPosition)
{
TextView car1 = (TextView)findViewById(R.id.car1);
TextView car2 = (TextView)findViewById(R.id.car2);
TextView car3 = (TextView)findViewById(R.id.car3);
TextView car4 = (TextView)findViewById(R.id.car4);
TextView car5 = (TextView)findViewById(R.id.car5);
car1.setText(cars.get(firstPosition);
car2.setText(cars.get(firstPosition+1);
car3.setText(cars.get(firstPosition+2);
car4.setText(cars.get(firstPosition+3);
car5.setText(cars.get(firstPosition+4);
}
}
最后,创建一个名为list\u item\u car\u row的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:background="@drawable/standard_background"
android:orientation="horizontal"
>
<TextView
android:id="@+id/car1"
android:layout_height="wrap_content"
android:layout_weight="wrap_content"/>
<TextView
android:id="@+id/car2"
android:layout_height="wrap_content"
android:layout_weight="wrap_content"/>
<TextView
android:id="@+id/car3"
android:layout_height="wrap_content"
android:layout_weight="wrap_content"/>
<TextView
android:id="@+id/car4"
android:layout_height="wrap_content"
android:layout_weight="wrap_content"/>
<TextView
android:id="@+id/car5"
android:layout_height="wrap_content"
android:layout_weight="wrap_content"/>
</LinearLayout>
这就是所谓的组件,而不是系统默认项。此组件基于6个文本视图。编辑XML,添加更多数据并制作一个很酷的:)当我得到它时,您想要制作一个普通的带有垂直滚动的
列表视图,但是在每一行中您也想要水平滚动
使用您喜欢的任何适配器制作普通的列表视图
,但项目布局的设计如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<HorizontalScrollView
android:id="@+id/hor_scroll"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/lin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="6.0dip"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:focusable="false" />
<TextView
android:textAppearance="?android:textAppearanceMedium"
android:gravity="center_vertical"
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:singleLine="true"
android:layout_toRightOf="@id/icon"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true" />
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
您将有一个带有水平滚动标签项的垂直可滚动列表视图。使用一个带有5列的GridView而不是ListView。我可能解释得不太清楚。例如,我需要从300辆车的列表中,每排5辆车,每辆车都有他的描述、姓名、颜色。。。你明白吗?垂直滚动的GridView?这不是我想要的。我的listview每行必须有5个“cars”和300行垂直滚动。我不知道该怎么做。如果可能的话,编写XML和适配器类。感谢像这样的一堆东西| Car1 | Car2 | Car3 | Car4 | Car5 | |然后在它下面300行看起来像它???@jilbera。那么,当列表项没有水平滚动时,如何才能看到一个项目?抱歉@GauravArora,我无法理解你的问题。我有10行,有些行有多个数据,我必须使用水平滚动显示,但滚动时只能看到一个数据。哦,这是另一个问题,我想你应该有一个项目行视图,这将是横向滚动,但我不知道它是否可能。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:background="@drawable/standard_background"
android:orientation="horizontal"
>
<TextView
android:id="@+id/car1"
android:layout_height="wrap_content"
android:layout_weight="wrap_content"/>
<TextView
android:id="@+id/car2"
android:layout_height="wrap_content"
android:layout_weight="wrap_content"/>
<TextView
android:id="@+id/car3"
android:layout_height="wrap_content"
android:layout_weight="wrap_content"/>
<TextView
android:id="@+id/car4"
android:layout_height="wrap_content"
android:layout_weight="wrap_content"/>
<TextView
android:id="@+id/car5"
android:layout_height="wrap_content"
android:layout_weight="wrap_content"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<HorizontalScrollView
android:id="@+id/hor_scroll"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/lin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="6.0dip"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:focusable="false" />
<TextView
android:textAppearance="?android:textAppearanceMedium"
android:gravity="center_vertical"
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:singleLine="true"
android:layout_toRightOf="@id/icon"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true" />
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>