水平滚动GridView

时间:2017-02-05 13:59:24

标签: android gridview horizontalscrollview

我正在尝试创建一个我自己的水平可滚动GridView(不想使用那里的任何东西,因为我想玩这个概念并且我自己更好地理解它)但是由于某种原因没有网格项目出现在屏幕上。

GridLayout是ListItem的一部分,我在那里实例化它。 (如果我使用普通的GridLayout,那么未在Scroll View中添加数据将显示)

这是我的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="180dp"
    android:layout_centerVertical="true"
    android:layout_alignParentStart="true">
    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/horizontalScrollView">

        <GridView
           android:id="@+id/gridview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:columnWidth="100dp"
         />

    </HorizontalScrollView>
</FrameLayout>

这是我的适配器类:

public class RelatedCarsAdapter extends BaseAdapter {

private Context mContext;
private ArrayList<Cars> cars;

public RelatedCarsAdapter(Context context, ArrayList< Cars > cars) {
    this.mContext = context;
    this.cars = cars;
}

@Override
public int getCount() {
    return cars.size();
}

@Override
public Object getItem(int i) {
    return cars.get(i);
}

@Override
public long getItemId(int i) {
    return i;
}

@Override
public View getView(int position, View view, ViewGroup viewGroup) {
    TextView dummyTextView = new TextView(mContext);
    dummyTextView.setText(String.valueOf(position));
    return dummyTextView;
    }
}

这就是我实例化的方式:

GridView gridView = (GridView) rowView.findViewById(R.id.gridview);
            RelatedCarsAdapter relatedCarsAdapter = new RelatedCarsAdapter(mContext, cars);
            gridView.setNumColumns(cars.size());
            gridView.setAdapter(relatedCarsAdapter);

1 个答案:

答案 0 :(得分:0)

GridView不会在Horizo​​ntalScrollView中滚动。您需要在布局中使用RecyclerView而不是GridView(并且可能扩展RecyclerView.Adapter)

请参阅文档:https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html