标签: android-gridview

如何使gridview不对称?

在我的应用程序中,我试图使我的 gridview 不对称,但我只能设置 2 或 3 列等等……还有其他选项可以使 gridview 不对称吗?以下是我的 gridview 代码,有人可以帮我吗?

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

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="150dp"

        />


    <GridView
        android:numColumns="2"
        android:gravity="center"
        android:stretchMode="columnWidth"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/allproduct_grid"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp"
        android:layout_marginTop="10dp"
        />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我想要的是:

在此处输入图片说明

android android-gridview

5
推荐指数
1
解决办法
9116
查看次数

RecyclerView GridLayout 宽度全宽和半宽

有没有办法归档以下内容?我希望我的 RecyclerView 能够在 2 列的网格中显示我的卡片,但我还希望几张卡片具有全屏宽度,而不仅仅是半宽。我尝试使用StaggeredGridLayoutManager存档,但我找不到存档的方法。

编辑 我希望布局看起来像这样: 在此处输入图片说明

android android-gridview android-recyclerview

5
推荐指数
2
解决办法
2321
查看次数

如何在android中显示不对称的图像网格

我必须在非对称网格中动态显示图像 - 设置 rowSpan(height) 和 colSpan(width)(支持 Android 10+)。我尝试了以下方法

尝试的方法

  1. RecyclerView 和 GridLayoutManager 有了这个,我们可以只改变一个项目的宽度(colSpan)(当 GridLayoutManager 方向是 VERTICAL 时)。我们不能改变高度(rowSpan)

  2. RecyclerView with StaggeredGridLayoutManager 它支持水平和垂直布局以及反向布局子项的能力。但与 GridLayoutManager 一样,我们只能设置 rowSpan 或 colSpan,但不能同时设置(取决于它的方向)

  3. TwoWayView 这似乎是一个理想的解决方案。但是该库在最新版本的 Android 支持库 https://github.com/lucasr/twoway-view/issues/266 上存在问题。我们在我们的项目中使用 Android 支持库 23.3.2。

  4. AsymmetricGridView 库的作者提到了一个警告“目前只对 rowSpan = 2 和 columnSpan = 2 的项目有很好的支持”。我正在寻找一个支持其他行和列跨度的库

  5. GridLayout 这仅适用于 Android 14+。我正在寻找支持 Android 10+ 的解决方案

我查看了以下堆栈溢出问题

Android Docs 中没有关于 RecyclerView 和 StaggeredGridLayoutManager 的好例子

如何在行中创建具有不同图像大小的 AsymmetricGridView

任何帮助是极大的赞赏。

android android-layout android-gridview staggered-gridview

5
推荐指数
0
解决办法
2653
查看次数

Android GridView背景亮点

通常在Gridview中,当您按下网格中的元素时,它会突出显示特定的正方形背景,并且颜色很好.我想让它在你放手后保持高亮显示,基本上把它变成一个开关的开关,用于高光.我想使用自动内置的android高亮颜色,但到目前为止我没有成功尝试使其工作.任何帮助将不胜感激.

谢谢!

android android-gridview

4
推荐指数
1
解决办法
4759
查看次数

Android GridView按钮单击处理程序

我有一个Android GridView有一个ImageView,TextView两个Button's.网格看起来很好,但我发现很难处理内部的按钮事件GridView.我是Android新手.

任何帮助,将不胜感激.

谢谢.

android android-gridview

4
推荐指数
2
解决办法
1万
查看次数

在Android中获取GridView实际列宽

大家好开发者.

我在Android应用程序中有一个网格视图.网格视图具有自动适合列数的设置,最小列宽为250像素.

在网格单元格中,我有一个LinearLayout,它有一个图像视图和一些文本视图.

我希望我的图像视图始终是方形的,但不幸的是我无法使用任何布局设置(在此处可以使用建议,如果我错过了一个选项).

所以我的想法是,我应该以某种方式获取我的图像Loading类中的网格列宽度,并在那里动态调整imageView高度,以匹配宽度.

虽然我没有获得列宽.如果我在my中设置了breakPoint,我 public View getView(int position, View convertView, ViewGroup parent)看到我的父ViewGroup是Grid,它具有正确的列宽值,但是当我使用时:

GridView mGridView = (GridView)parent;
int width = mGridView.getColumnWidth();
Run Code Online (Sandbox Code Playgroud)

应用程序崩溃,因为它说没有getColumnWidth方法.

这里有什么帮助?

android android-gridview

4
推荐指数
2
解决办法
9270
查看次数

如何使customAdapter填充gridview高度

我正在使用Sudoku app.布局是9x9 GridView.每个GridView都包含customAdapter的9个Textview.我想让9个TextViews填充每个GridView的高度.怎么样?

这就是我现在所拥有的 在此输入图像描述

这是myGridAdapter:

public class myGridAdapter extends BaseAdapter {

private Context context;
private String[] mobileValues;

public myGridAdapter(MainActivity mainActivity, String[] arrayEmpty) {
    this.context = mainActivity;
    this.mobileValues = arrayEmpty;
}

public View getView(int position, View convertView, ViewGroup parent) {

    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View gridView;

    if (convertView == null) {

        gridView = new View(context);

        // get layout from text_item.xml
        gridView = inflater.inflate(R.layout.text_item, null);

        // set value into textview
        TextView textView = (TextView) gridView
                .findViewById(R.id.grid_item_label);
        textView.setText(mobileValues[position]);

    } else { …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-gridview

4
推荐指数
1
解决办法
1万
查看次数

使用StickyGridHeaders

StickyGridHeaders,但它不能正常工作,或者至少我想要它.

所以我得到了这个列表里面的其他列表,并且我创建了一个标题列表(我使用原始列表)和一个完整的项目列表(所有子项目),并调用适配器如下:

List<CalendarDate.CalendarTvShowEpisode> lista=new LinkedList<CalendarDate.CalendarTvShowEpisode>();
for(CalendarDate l:response){
        lista.addAll(l.episodes);
    }
setListAdapter(new WeekCalendarAdapter(getActivity(), weekCalendar,lista));
Run Code Online (Sandbox Code Playgroud)

然后我有我的适配器:

 public class WeekCalendarAdapter extends BaseAdapter implements StickyGridHeadersBaseAdapter {

        private final List<CalendarDate> mListHeaders;
        private final List<CalendarDate.CalendarTvShowEpisode> lista;
        private LayoutInflater inflater;

        public WeekCalendarAdapter(Context context, List<CalendarDate> mList, List<CalendarDate.CalendarTvShowEpisode> lista) {
            this.mListHeaders = mList;
            this.lista=lista;
            inflater = LayoutInflater.from(context);
        }

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

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

        @Override
        public long getItemId(int i) {
            return lista.get(i).episode.firstAired.getDay();
        }

        @Override
        public View getView(int position, …
Run Code Online (Sandbox Code Playgroud)

android listview android-gridview

4
推荐指数
1
解决办法
4717
查看次数

列出SD卡中的所有图像.

嗨,我正在开发Android Gallery应用程序.我从SD卡中的文件夹中获取图像并将其显示在网格视图中,如下所示

public static ArrayList<String> getFilePaths()
{
    ArrayList<String> filePaths = new ArrayList<String>();

    File directory = new File(android.os.Environment.getExternalStorageDirectory() + File.separator + AppConstant.PHOTO_ALBUM);

    // check for directory
    if (directory.isDirectory())
    {
        // getting list of file paths
        File[] listFiles = directory.listFiles();

        // Check for count
        if (listFiles.length > 0) 
        {

            for (int i = 0; i < listFiles.length; i++)
            {

                String filePath = listFiles[i].getAbsolutePath();

                if (IsSupportedFile(filePath)) 
                {
                    // Add image path to array list
                    filePaths.add(filePath);
                }
            }
        } 
        else 
        {
            // image directory …
Run Code Online (Sandbox Code Playgroud)

android android-sdcard android-gallery android-gridview

4
推荐指数
1
解决办法
2万
查看次数

Android-如何使用按钮显示空白网格视图

我想显示空白动态网格这样的

空白网格 我试图像这样填充网格,但为此我需要将drawable int数组发送到baseadapter.我知道它不是正确的方法来做到这一点

请考虑以下情况:

1)用户将获得这种带有空白网格的屏幕,其中"+"按钮将图像添加到网格,如果图像存在于网格上,则显示" - "按钮

2)一旦用户填充GridView的第二个空白网格,就立即动态增加网格.

考虑这个问题太替代问题

java android gridview adapter android-gridview

4
推荐指数
1
解决办法
1030
查看次数