首页 > 其他分享 >GridLayout 等控件来完成多行按钮操作

GridLayout 等控件来完成多行按钮操作

时间:2024-05-21 22:51:10浏览次数:23  
标签:多行 控件 LayoutParams Button 设置 GridLayout button

 

第一步,在布局文件中添加一个 GridLayout 控件,设置它的行列数和间距等属性,例如:

<GridLayout
    android:id="@+id/grid_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnCount="4"
    android:rowCount="2"
    android:orientation="horizontal"
    android:alignmentMode="alignMargins"
    android:columnOrderPreserved="false"
    android:useDefaultMargins="true"
    android:layout_marginBottom="16dp"
    android:layout_marginTop="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
/>

在这里,我们设置了 GridLayout 控件的列数为 4,行数为 2,水平方向排列,对齐模式为沿着每个纵向边框对齐,列顺序不保留,使用默认边距和间距,同时设置了上、下、左、右四个方向的外边距。

第二步,在 Java 代码中获取 GridLayout 对象,并循环添加 Button 控件到其中,例如:

GridLayout gridLayout = findViewById(R.id.grid_layout);

for (int i = 0; i < 8; i++) {
    Button button = new Button(this);
    button.setText("Button " + (i+1));
    GridLayout.Spec rowSpec = GridLayout.spec(i/4, 1f);
    GridLayout.Spec columnSpec = GridLayout.spec(i%4, 1f);
    GridLayout.LayoutParams layoutParams = new GridLayout.LayoutParams(rowSpec, columnSpec);
    button.setLayoutParams(layoutParams);
    gridLayout.addView(button);
}

在这里,我们使用循环创建 8 个 Button 控件,并设置它们的文本内容,然后用 GridLayout.LayoutParams 指定每个 Button 控件的行列和权重,并添加到 GridLayout 控件中。

最终的效果是,GridLayout 控件中会出现两排共八个 Button 控件,每排四个,排列紧密,且外部有一定距离

标签:多行,控件,LayoutParams,Button,设置,GridLayout,button
From: https://www.cnblogs.com/wangxinyuan1108/p/18205122

相关文章

  • QT基础语法与控件
    1.基础使用纯正的开源版本QT使用C++来实现QT使用QT可以使C++项目可视化本身也是C++的一个库允许跨平台QT特征面向对象,模块化设计调用,所有QT控件可继承控件之间的通信,signalslot友好的联机帮助,函数参数手册自定义控件设计QTCreator编译器集成开发环境IDE直接下载QT......
  • 【C#】WPF字典资源设置Button控件样式
    <ResourceDictionaryxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Stylex:Key="BtnInfoStyle"TargetType="Button">......
  • 记录一次控件刷新后消失,错位的解决方法
    winform界面控件过多,持续刷新会出现控件消失,错位等现实问题,双缓存也不能解决。使用以下的刷新方式之后不再出现控件显示问题。privatevoidRefreshDataOnUI(){if(this.InvokeRequired){this.Invoke((MethodInvoker)delegate{//在......
  • 【PB案例学习笔记】-01创建应用、窗口与控件
    写在前面这是PB案例学习笔记系列文章的第一篇,也是最基础的一篇。后续文章中【创建程序基本框架】部分操作都跟这篇文章一样,将不再重复。该系列文章是针对具有一定PB基础的读者,通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。文章......
  • Selenium4自动化测试8--控件获取数据--上传、下载、https和切换分页
    系列导航一、Selenium4自动化测试1--Chrome浏览器和chromedriver二、Selenium4自动化测试2--元素定位By.ID,By.CLASS_NAME,By.TAG_NAME三、Selenium4自动化测试3--元素定位By.NAME,By.LINK_TEXT和通过链接部分文本定位,By.PARTIAL_LINK_TEXT,css_selector定位,By.CSS_SELECTOR四、j......
  • Selenium4自动化测试7--控件获取数据--radio单选框、select下拉框选择、iframe
    7-radio单选框 importtimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy#定义一个driver的变量,用来接收实例化后的浏览器#指定浏览器的位置,解决浏览器驱动和浏览器版本不匹配的问题chrome_location=r'D:\pythonProject2023\Seleni......
  • flutter控件之Text属性的意思
    constText(Stringthis.data,{super.key,this.style,this.strutStyle,this.textAlign,this.textDirection,this.locale,this.softWrap,this.overflow,@Deprecated('UsetextScalerinstead.''UseoftextScaleFactorwasdeprecatedinprepar......
  • C# Windows窗体应用 添加控件后工具箱不显示是什么原因
    刚刚接触台湾企业,繁体字看得懵逼,一不小心就闹个乌龙Windows窗体应用,与Windows窗体应用(.NETFramework)未区分开来导致加入的自定义控件加入不了工具箱。1、现象描述:选择工具箱的windows窗体,鼠标右击,在弹出菜单中选【选择项】,弹出自定义工具箱的对话框,在com组件中可找到Hslcon......
  • 界面控件Telerik UI for WPF中文教程 - 如何轻松实现日期范围选择?
    TelerikUIforWPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。UIforWPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成VisualStudio工具箱中。TelerikUIforWPF中的RadDateRangePicker......
  • 【pywinauto】 常用控件方法说明
    Dialog控件是一个顶级窗口属性:window_text:获取或设置对话框的标题文本。class_name:获取对话框的类名。control_id:获取对话框的控件标识符。enabled:获取或设置对话框是否启用。visible:获取或设置对话框是否可见。rectangle:获取对话框的矩形区域坐标。state:获取对话框的状......