安卓 调整listview行的宽度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓 调整listview行的宽度相关的知识,希望对你有一定的参考价值。
在main。xml中直接拉进去了一个listview 可是行太高了 字体貌似有人改不了。我想通过xml把行距调小
要看你用的是什么适配器给ListView添加的数,不过三种都可以添加自己的布局文件
SimpleAdapter,ArrayAdapter
这两个都一样,就写一个吧
SimpleAdapter adapter = new SimpleAdapter(this, list,R.layout.quick_item, new String[] "name" ,new int[] R.id.barCodeTextView );
其中"R.layout.quick_item"就是自己写的xml配置文件
BaseAdapter
就在对应的的Adapter中引入自定义布局文件,大概像这样
LayoutInflater mInflater = LayoutInflater.from(mContext);
convertView = mInflater.inflate(R.layout.complex_item, null);
剩下的就是写自己的布局文件,高度,宽度,字体样式都可以根据自己的需要调整,祝你成功吧
追问
用的ArrayAdapter ,自己写的xml配置文件总是出错,麻烦给个例子,我的每行显示一行字就行
用的ArrayAdapter ,自己写的xml配置文件总是出错,麻烦给个例子,我的每行显示一行字就行
追答quick_item.xml
试试看是不是你要的,最好还是说说自己做的出了什么错,这样对自己学习也有好处,我也是初学的,加油吧, 解决了的话给个采纳吧,谢谢啦
比如:
在/layout文件中定义row.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="10px"
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
行高,是你在adapter中添加布局。在设置布局的高度,还有如果布局是全屏。只要设置布局中的组件layout_height 即可。试试吧 参考技术B 设置listView的item间距,可以在xml布局文件中的listView下设置xml属性:
android:divider="#00000000"
android:dividerHeight="18dp"
解释:分隔线透明,高度为18dp。追问
不管用啊 就分割线有变化 行高没变没变
参考技术C 要看你用的是什么适配器给ListView添加的数转:DataGridView列的宽度行的高度自动调整
注意:DataGridView控件是从.NET Framework 2.0版本开始追加的。
介绍一下DataGridView列的宽度和行的高度,根据单元格或Header的内容(一般是内容全部被表示)自动调整的方法。
内容变更时自动调整
列的宽度自动调整
DataGridView列的宽度自动调整,可以使用DataGridView.AutoSizeColumnsMode属性实现。
下面的代码就是列的宽度根据Header和所有单元格的内容自动调整的。
[C#]
//根据Header和所有单元格的内容自动调整列的宽度 DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;DataGridViewAutoSizeColumnsMode枚举的成员如下所示(是从MSDN「DataGridViewAutoSizeColumnsMode 枚举」引用的)。
DataGridViewAutoSizeColumnsMode成员名称
|
说明
|
AllCells | 列宽调整到适合列中所有单元格(包括标头单元格)的内容。 |
AllCellsExceptHeader | 列宽调整到适合列中除标头单元格以外所有单元格内容。 |
ColumnHeader | 列宽调整到适合列标头单元格的内容。 |
DisplayedCells | 列宽调整到适合位于屏幕上当前显示的行中的列的所有单元格(包括标头单元格)的内容。 |
DisplayedCellsExceptHeader | 列宽调整到适合位于屏幕上当前显示的列中的列的所有单元格(不包括标头单元格)的内容。 |
Fill | 列宽调整到使所有列宽精确填充控件的显示区域,要求使用水平滚动的目的只是保持列宽大于DataGridViewColumn.MinimumWidth属性的值。相对列宽由相对 DataGridViewColumn.FillWeight属性值决定。 |
None | 列宽不会自动调整。 |
行高的自动调整
DataGridView行的高度自动调整,可以使用DataGridView1.AutoSizeRowsMode属性实现。
[C#]
//根据Header和所有单元格的内容自动调整行的高度 DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;DataGridViewAutoSizeRowsMode枚举的成员如下所示(是从MSDN「DataGridViewAutoSizeRowsMode 枚举」引用的)。
DataGridViewAutoSizeRowsMode成员名称
|
说明
|
AllCells | 将行高调整到适合行中所有单元格(包括标头单元格)的内容。 |
AllCellsExceptHeaders | 将行高调整到适合行中所有单元格(不包括标头单元格)的内容。 |
AllHeaders | 将行高调整到适合行标头的内容。 |
DisplayedCells | 将行高调整到适合屏幕上当前显示的行中所有单元格(包括标头单元格)的内容。 |
DisplayedCellsExceptHeaders | 将行高调整到适合屏幕上当前显示的行中所有单元格(不包括标头单元格)的内容。 |
DisplayedHeaders | 将行高调整到适合屏幕上当前显示的行标头的内容。 |
None | 行高不自动调整。 |
列Header的高度、行Header的宽度自动调整
列Header的高度自动调整,可以通过设定DataGridView对象ColumnHeadersHeightSizeMode属性为DataGridViewColumnHeadersHeightSizeMode.AutoSize实现。
行Header的宽度行自动调整,可以通过设定DataGridView对象RowHeadersWidthSizeMode属性为 DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders(根据所有行Header的内容自 动调整)或AutoSizeToDisplayedHeaders(根据当前显示的行Header内容自动调整)或 AutoSizeToFirstHeader(根据第一行Header的内容自动调整)来实现。
[C#]
//列Header的高度自动调整 DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; //行Header的宽度自动调整 DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;关于优化
通过设定AutoSizeColumnsMode或AutoSizeRowsMode属性,列或行可以根据单元格的内容变更,自动调整,但是经常使用这种方法,运行速度就会低下。尤其当行或列数量比较多时,更为明显。
这时,可以替换AllCells而设定DisplayedCells,只对当前显示单元格的内容自动调整,这样就可以提高执行速度。
只有被指定的列自动调整
只有被指定列自动调整,可以使用指定列(DataGridViewColumn对象)的AutoSizeMode属性实现。使用方法和AutoSizeColumnsMode属性基本一样。
下面是对第一列的宽度自动调整的代码。
[C#]
//第一列的宽度自动调整 DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;和AutoSizeColumnsMode属性不同,AutoSizeMode属性可以设定为NotSet。当设定为NotSet时,列的自动调整 的设定会继承DataGridView.AutoSizeColumnsMode属性的设定。AutoSizeMode属性设定为NotSet继承 AutoSizeColumnsMode属性时,所继承的设定可以使用 DataGridViewColumn.InheritedAutoSizeMode属性取得。
任意自动调整
列的宽度自动调整
对DataGridView内所有列只进行一次自动调整,可以使用DataGridView对象的AutoResizeColumns方法实现。 AutoResizeColumns方法和AutoSizeColumnsMode属性一样,根据 DataGridViewAutoSizeColumnsMode枚举值指定自动调整的方法。如果只对指定列自动调整时,可以使用 DataGridView对象的AutoResizeColumn方法。
[C#]
//DataGridView1所有列的宽度自动调整 DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); //DataGridView1第一列的宽度自动调整 DataGridView1.AutoResizeColumn(0, DataGridViewAutoSizeColumnMode.AllCells);补充:上面的例子中使用AutoResizeColumns或AutoResizeColumn指定DataGridViewAutoSizeColumnMode.AllCells时,可以省去参数。
行的高度自动调整
和列的设定一样,使用AutoResizeRows方法只对指定行的高度进行自动调整。
[C#]
//DataGridView1所有行的高度自动调整 DataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells); //DataGridView1第一行的高度自动调整 DataGridView1.AutoResizeRow(0, DataGridViewAutoSizeRowMode.AllCells);补充:上面的例子中使用AutoResizeRows或AutoResizeRow指定DataGridViewAutoSizeRowMode.AllCells 时,可以省去参数。
列Header的高度或行Header和宽度自动调整
列Header的高度和行Header的宽度的自动调整,可以使用DataGridView.AutoResizeColumnHeadersHeight方法和AutoResizeRowHeadersWidth方法实现。
以上是关于安卓 调整listview行的宽度的主要内容,如果未能解决你的问题,请参考以下文章
安卓listview位置怎么调整?为啥调整listView大小时,它上边界永远不动?
Listview UWP 的自动宽度(将最宽行的宽度设置为所有其他行)
用C#listview控件Details类型,发现当拉动表头调整列宽度过程时,listview会重画,造成不停的闪烁