首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在XML GridView中使宽比相等

在XML GridView中使宽比相等,可以通过设置列的宽度为相等的方式实现。以下是一种实现方法:

  1. 首先,在XML布局文件中定义GridView控件,并设置其列数为需要展示的列数。
代码语言:txt
复制
<GridView
    android:id="@+id/gridView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:numColumns="3"
    android:stretchMode="columnWidth"
    android:horizontalSpacing="10dp"
    android:verticalSpacing="10dp"/>
  1. 接下来,在代码中获取GridView控件的引用,并为其设置适配器。
代码语言:txt
复制
GridView gridView = findViewById(R.id.gridView);
gridView.setAdapter(adapter);
  1. 创建一个适配器类,继承自BaseAdapter,并重写相关方法。
代码语言:txt
复制
public class MyAdapter extends BaseAdapter {
    private Context context;
    private List<String> data;

    public MyAdapter(Context context, List<String> data) {
        this.context = context;
        this.data = data;
    }

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

    @Override
    public Object getItem(int position) {
        return data.get(position);
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater = LayoutInflater.from(context);
            convertView = inflater.inflate(R.layout.grid_item, parent, false);
        }

        // 设置每个Item的宽度为相等
        int screenWidth = context.getResources().getDisplayMetrics().widthPixels;
        int itemWidth = screenWidth / gridView.getNumColumns();
        convertView.setLayoutParams(new GridView.LayoutParams(itemWidth, ViewGroup.LayoutParams.WRAP_CONTENT));

        // 设置Item的内容
        TextView textView = convertView.findViewById(R.id.textView);
        textView.setText(data.get(position));

        return convertView;
    }
}
  1. 创建一个grid_item.xml布局文件,用于定义GridView中每个Item的样式。
代码语言:txt
复制
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:padding="10dp"
    android:textSize="16sp"/>

通过以上步骤,就可以在XML GridView中实现宽度相等的效果了。每个Item的宽度将根据列数自动调整,以保证宽度相等。这种布局适用于需要展示多个等宽的项目的场景,如图标展示、商品展示等。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter 约束宽高比的控件 AspectRatio

GridView 联动 我们可能遇到更多的需求是:在GridView 中,也要控制住每一张图片的宽高比。 如果没有AspectRatio 控件则比较难实现,因为要算间距之类的。...这个时候我们就只需要设置宽高比即可设置合适的高。 设置不符合常理的高 前面我们设置的都是符合常理的高。 比如,我们限制了外部容器的高都为100。...第一种情况:宽高比为 2,设置为100,那么高会自动算出来为50,这样是合理的。 第二种情况:宽高比为0.5,也就是说高更长,那这个时候我设置为100,会是什么样的结果?...我们可以使用刚才的GridView 来实现这个猜想,因为GridView中的高就是限制好的。...可以看到,确实刚才所说,把宽度变小了。 关注我,每天更新 Flutter & Dart 知识。

2.7K10
  • WPF是什么_wpf documentviewer

    GridView及其辅助类能让你在表中来查看集合中的数据项,且可以通过表头来进行交互(表头是个按钮,可以给它加各种交互功能,排序)。 2.2. GridView是什么?...添加可视化元素到GridView 要在GridView视图中添加可视化元素,CheckBox和Button控件,需使用模板或样式。...取而代之,应该在定义GridView视图模式的类上指定属性或模板来直接影响列。...与GridView进行用户交互 当你在程序中使用了GridView时,用户可以与GridView交互并修改其格式。例如,用户可以重新排序列(拖动表头使整列移动)、调整列的大小、选中表中的项和滚动内容。...选中行项 用户可以选择GridView的一个或多个项。 如果要更改选中项的样式,请参见ListView中使用触发器对选中项进行样式设置。

    4.7K20

    Flutter开发-可滚动组件

    我们先介绍一下常用的可滚动组件(ListView、GridView等) SingleChildScrollView SingleChildScrollView类似于Android中的ScrollView...在ListView中,指定itemExtent让子组件自己决定自身长度会更高效,这是因为指定itemExtent后,滚动系统可以提前知道列表的长度,而无需每次构建子组件时都去再计算一下,尤其是在滚动位置频繁变化时...450,那么当maxCrossAxisExtent的值在区间[450/4,450/3)内的话,子元素最终实际长度都为112.5,而childAspectRatio所指的子元素横轴和主轴的长度比为最终的长度。...示例 假设我们需要从一个异步数据源(网络)分批获取一些Icon,然后用GridView来展示: class InfiniteGridView extends StatefulWidget { @override...SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3, //每行三列 childAspectRatio: 1.0 //显示区域相等

    4.5K20

    Android开发笔记(三十八)列表类视图

    一般情况下自定义适配器继承自BaseAdapter就够用了,当然Android为了方便懒人,专门扩展了两种简单易用的适配器,ArrayAdapter用于每行只显示文本的情况,而SimpleAdapter...首先xml布局中将ListView的id设置为系统id,即“@android:id/list”,然后页面的代码类继承ListActivity。...xml布局中ListView的id可自定义,页面的代码类继承自Activity。...下面是GridView常用的属性和方法: xml布局上的属性设置: horizontalSpacing : 指定子视图在水平方向的间距。...取值说明如下:none表示不做拉伸;columnWidth表示若有空余空间,则拉伸与列宽大小一致;spacingWidth表示若有空余空间,则列不变,把空余分配到每列间的空隙;spacingWidthUniform

    2.3K20

    如何将GridViewEX升级到UWP(Universal Windows Platform)平台

    引言 上一篇文章中,我们主要讲解了如何在保证GridView控件的用户体验基础上,扩展GridView生成GridViewEx控件,增加动态添加新分组功能等,本文在上文的基础上,介绍如何在Windows10...中使用GridViewEx,开发UWP应用。...修改布局和导航 VisibilityConverter 和 SuspensionsManager暂时不需要修改,可直接在UWP中使用。主要修改布局和导航逻辑文件。...UWP平台提供了其他的解决方法AdaptiveTriggers,内置了自适应布局。因此创建UWP应用程序,首先需要删除所有ApplicationViewStates的代码。...Bound 和Unbound 示例是由2个GridView控件组成,小屏幕中显的内容较多,无法显示更多的细节性的内容,因此使用Pivot控件保证同一时间只显示一个GridView控件,并支持GridView

    2.8K80

    Android开发笔记(十二)测量尺寸与下拉刷新

    尺寸测量的配置 控件宽和高的设置方式 大家知道,自定义视图的目的就是要在屏幕上显示期望的图案,那在绘制图案之前,我们得先知道这个图案的尺寸(多少高多少)。...一般在xml中给控件的宽和高有三种赋值方式: 1、MATCH_PARENT : 表示与上级控件一样大小; 2、WRAP_CONTENT : 表示按照自身尺寸进行适配; 3、直接赋给具体的dp值;...在Android规定的测量过程中,主要有三个步骤: 1、获得与高的测量模式; 2、按照测量模式进行丈量; 3、获得测量后的与高的大小; 获得与高的测量模式 首先取到目标视图的宽和高的取值...PullToRefresh 说到下拉刷新,刚好介绍一下使用广泛的开源框架PullToRefresh,该框架支持ScrollView、ListView、GridView多种视图,也支持下拉刷新和上拉加载两种模式...getRefreshableView : 获取可刷新的视图对象,ScrollView、ListView、GridView等等,接着方可调用视图对象的相应方法,setAdapter等等。

    1.1K40

    Flutter | 滚动组件,ListView,GridVIew

    可滚动组件中有很多都支持 Sliver 的延时构建模型, ListView,GridView ,但是也有不支持改模型的 SingleChildScrollView 主轴和纵轴 在滚动组件的坐标描述中,...在 ListView 中指定 itemExtent 让子组件自己决定吱声的长度会更有效,因为指定后,滚动系统可以提前知道列表的长度,而无需每次构建子组件是都去计算一下,尤其是在滚动位置频繁变化时(滚动系统需要频繁去计算列表的高度..., ); }, ); } } 复制代码 ListView.separated ListView.separated 可以在生成的列表项之间添加一个分隔组件,他...childAspectRatio:所指的子元素横轴和主轴的长度比为最终的长度 其他的参数都和上面的一样 GridView( gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent...SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3, //每行三个 childAspectRatio: 1, //相等

    8.5K20

    Android界面组件基本用法

    fitStart(ImageView.ScaleType.FIT_START):保持纵横,图片较长的边长与ImageView相应的边长相等,缩放后放在左上角 fitCenter(ImageView.ScaleType.FIT_CENTER...):保持纵横,图片较长的边长与ImageView相应的边长相等,缩放后放在中央 fitEnd(ImageView.ScaleType.FIT_END):保持纵横,图片较长的边长与ImageView相应的边长相等...如果可以确定spinner里面的列表项,那么直接在/res/layout/main.xml里面指定 <Spinner …… android:entries=”@string/books” />...然后在/res/value/string.xml里面指定 疯狂Java讲义 疯狂Ajax...) 使用GridView一般指定numColumn大于1,否则取默认值为1.那么GridView就变成了ListView 属性android:stretchMode支持如下属性 none 不拉伸 spacingWidth

    1.7K20

    ViewGroup.LayoutParams 和 MeasureSpec

    1.LayoutParams LayoutParams 是ViewGroup的内部静态类 ,ViewGroup的子类(RelativeLayout,LinearLayout,FrameLayout...)都有其对应的 ViewGroup.LayoutParams的子类,RelativeLayoutParams LayoutParams 的作用:指定视图View 的高度(height) 和...宽度(width)等布局参数,具体如下: 参数 解释 具体值 dp / px fill_parent 强制性使子视图的大小扩展至与父视图大小相等(不含 padding ) match_parent 与...fill_parent相同,用于Android 2.3 & 之后版本 wrap_content 自适应大小,强制性地使视图扩展以便显示其全部内容(含 padding ) 对应于xml如下: android...* @param padding view当前尺寸的的内边距和外边距(padding,margin) * @param childDimension 子视图的布局参数(/

    49100

    .NET工作准备--01前言

    可以选择动态,或者静态: 当动态时,可以通过构造函数赋值;time = new DateTime(); 当静态时(static readonly),可以通过静态构造函数复制;data = readXml...*delegate,event *用mvc实现GridView,mvc下model,view间的传值(action?) *多线程,例子:(?...RunWorkerAsync();OnWorkCompleted();ReportProcess(); *两个不同命名空间下相同结构的类之间值的Clone; 可以使用序列化和反序列化化方法,中间借用XML...WebService的配置 *Session,Cookie,Cache,如果不能使用session如何实现相似的功能; *javascript的继承; *best practice分享;(比如测试的框架) *如何在不使用...最好使用通过microsoft C#engineer英文版相关考核; 面试考核: *sqlserver2008创建索引,include指令; *sql中视图与存储过程的区别; *sqlserver中使用动态

    91580

    扩展GridView控件——为内容项添加拖放及分组功能

    本文源于我们项目的开发人员,他们想在项目中提供与GridView相同的用户体验,想要创建类GridView控件。 GridView 可以显示大小不定的内容项,并且以有序的方式显示。...> 扩展后的GridView使用拖拽操作将会非常方便快捷。...GridViewEx.BeforeDrop事件处理此需求,并且提供更多的数据信息,DragEventArgs数据。 当用户执行拖放操作时,触发BeforeDrop 事件。...想将某一项显示较大一点,需要在数据项中创建一个属性返回1大的整型数值,来设置RowSpanhuoColumnSpan属性。...到此已经实现了GridView项与Windows8开始菜单具有的相同用户体验,如果你想了解如何在Windows10平台下开发UWP引用,请持续关注下篇文章:如何在Windows10中开发UWP应用

    2.9K50

    Flutter中构建布局 顶

    softwrap属性指示文本是否应在软换行符(句点或逗号)上断开。...如果您想在非Material应用程序中使用这些功能,您必须自己构建它们。 此应用程序将背景颜色更改为白色,将文本更改为深灰色以模仿Material应用程序。 而已!...在以下示例中,3个图像中的每一个都是100像素。 渲染框(在这种情况下,整个屏幕)宽度超过300像素,因此将主轴对齐设置为spaceEvenly在每个图像之间,之前和之后均匀分配自由水平空间。...GridView摘要: 在网格中放置小部件 检测列内容何时超过渲染框并自动提供滚动 构建您自己的自定义网格,或使用提供的网格之一: GridView.count允许你指定列数 GridView.extent...GridView示例: ? 使用GridView.extent创建一个最大宽度为150像素的网格。

    43.1K10

    gradeview可拖动效果实现

    二、开发前的准备 1.了解重写View的相关知识,并且知道GridView的一些内部方法,:怎么通过触摸的坐标获取对应的position等(这里我采用的是继承GridView控件) 2.了解屏幕触摸动作传递原理...获取数据库中频道的列表,如果为空,赋予默认列表,并存入数据库,之后通过对应的适配器赋给对应的GridView 2.  2个GridView--(1.DragGrid   2....设置点击和拖动的限制条件,  推荐  这个ITEM是不允许用户操作的。 5.  ...开始拖动的ITEM的Position */ private int startPosition;   /** item高 */ private int itemHeight;   /** item ...移动的距离百分(相对于自己宽度的百分) float y_vlaue = ((float) mVerticalSpacing / (float) itemHeight) + 1.0f;

    2.5K80

    ImageView的属性和方法大全

    XML属性 相关方法 说明 android:adjustViewBounds setAdjustViewBounds(boolean) 设置 ImageView是否调整自己的边界来保持所显示的图片长宽...fitStart (ImageView.ScaleType.FIT_START ):保持纵横缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在...fitCenter (ImageView.ScaleType.FIT_CENTER ):保持纵横缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等)...fitEnd (ImageView.ScaleType.FIT_END ):保持纵横缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在...android:src="@drawable/girl"/> 上面的界面布局文件中定义了三个ImageView,其中第一个ImageView为默认属性和自动

    2.4K90

    可拖拽gridview

    在Android开发中,我们常常用到ListView和GridView,而有的时候系统的ListView,GridView并不能满足我们的需求,所以我们需要自己定义一个ListView或者GridView...的控件,GridView主要是来显示网格的控件,在Android的开发中使用很普通,相对于TextView,Button这些控件来说要来的复杂些,今天给大家带来长按GridView的item,然后将其拖拽其他...xml version="1.0" encoding="utf-8"?...接下来我们来运行下项目,在运行之前我们不要忘了在AndroidManifest.xml里面加入震动的权限<uses-permission android:name="android.permission.VIBRATE...你心里是不是也大概有自己的一个思路,建议大家自己敲敲看看,可以自己去实现下ListView的拖拽实现,ListView<em>比</em><em>GridView</em>简单些,好的学习方法不是看得懂人家的代码,而是看完代码自己根据脑海里的思路自己敲出来

    4.9K50

    Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果

    xml version="1.0" encoding="UTF-8"?...中的每个item的数据对象ImageBean, 遍历HashMap对象,具体的逻辑看代码,之后就是给GridView设置Adapter。... = options.outWidth;   int bitmapHeight = options.outHeight;   //假如Bitmap的宽度或高度大于我们设定图片的View的高...滑动的流畅度,介绍里面几个比较重要的方法 computeScale()计算图片需要裁剪的比例,根据控件的大小和图片的大小确定比例,如果图片控件大,我们就进行裁剪,否则不需要。...的宽和高存在问题,在getView()里面刚开始显示item的时候利用ImageView.getWidth() 获取的都是0,为什么刚开始获取不到宽和高呢,因为我们使用LayoutInflater来将XML

    3.6K20
    领券