-
为何不能动态生成TableLayout ?10
我在做动态生成TableLayout中的内容,布局文件这样的:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TableLayout android:id="@+id/table" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="all" > </TableLayout> </LinearLayout>
看上面的xml,很简单的一个布局。然后在代码中想动态添加TableRow,且看:@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); table=(TableLayout)findViewById(R.id.table); params=new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT,TableLayout.LayoutParams.WRAP_CONTENT); for(int i=0;i<20;i++){//添加20行 TableRow row=new TableRow(this); row.setLayoutParams(params); row.setBackgroundColor(0xFF00FF00); for(int j=0;j<1;j++){//添加1列 TextView col=new TextView(this); col.setLayoutParams(params); col.setText("i="+i); col.setTextColor(0xFFFF0000); row.addView(col);//添加列 } table.addView(row);//添加行 } }
可是这样我在模拟器上沒看见生成的行。我试过想生成很简单的table都不行。何故?有没有碰到过类似的朋友啊?2011年8月31日 10:10
1个答案 按时间排序 按投票排序
-
col.setLayoutParams(params);
这个params不能使用,你需要另外定义一个LayoutParams,你的col是放在tableRow中的,所以你现在定义的LayoutParams应该是TableRow.LayoutParams paramsRow=new TableRow.LayoutParams(TableLayout.LayoutParams.FILL_PARENT,TableLayout.LayoutParams.FILL_PARENT);
最后你的params应该是这样的params=new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT,TableLayout.LayoutParams.WRAP_CONTENT);2013年5月07日 20:49
相关推荐
通过动态创建`TableLayout`,开发者可以灵活地根据应用程序的需求生成不同结构的表格,提升用户体验。在实际项目中,结合其他布局如`LinearLayout`、`RelativeLayout`等,可以构建出更加复杂且富有交互性的用户界面...
【TableLayout详解】 TableLayout是Android布局管理器中的一种,它是线性布局(LinearLayout)的扩展,主要用于构建类似电子表格的二...在实际开发中,结合其他组件和设计模式,TableLayout能更好地满足各种复杂需求。
本文将深入探讨如何利用TableLayout自动生成表格,以及相关的Android开发知识。 ### 1. TableLayout基础知识 TableLayout是LinearLayout的扩展,它继承自ViewGroup,主要用于组织多个TableRow来创建表格结构。每个...
动态生成表格布局 随机读取PICTURE DIR下的图片显示在布局中 如果读取的不是图片 则读取res drawable hdpi的ic launcher png 难点: 1 对图片进行采样(即缩读取到内存的图片分辨率) 防止OutOfMemory 缺点:...
在这个"TableLayout程序生成"中,我们可以深入理解TableLayout的用法,并通过提供的TableLayoutProject源代码学习如何实际应用。 TableLayout的基础知识包括以下几个方面: 1. **基本结构**:TableLayout由多个...
5. **动态生成表格**:在某些情况下,表格的数据可能是动态的。这时,可以在Java代码中动态创建TableRow和TextView,并添加到TableLayout中。 6. **交互与事件处理**:可以为单元格中的视图设置点击事件监听器,...
这对于需要根据数据源动态生成表格的应用非常有用。 ```java TableLayout table = findViewById(R.id.table_layout); for (int i = 0; i ; i++) { TableRow row = new TableRow(this); for (int j = 0; j ; j++) ...
这对于需要根据数据动态生成表格的应用非常有用。 ### 示例项目 提供的`TableLayoutProject`压缩包应该包含了一个完整的示例应用,演示了如何创建和操作`TableLayout`。这个项目可能包含了以下几个部分: 1. `...
此外,视频可能还涵盖了TableLayout的动态编程实现,即在代码中创建和添加TableRow及子View,这对于运行时生成表格数据非常有用。 在实际应用中,TableLayout常常与Adapter结合使用,例如ListView或GridView,以...
按钮用于触发表格的动态生成,而`TableLayout`则用于展示动态生成的表格。 ```xml android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> android:...
这篇文档主要介绍了如何在代码中动态地添加数据到TableLayout,从而实现更加灵活的界面构建。 首先,我们来看一下`main.xml`的布局文件。在这个例子中,我们创建了一个LinearLayout作为根布局,并在其中包含了一个...
Android开发之动态生成表格及其边框专栏博客频道
- 若表格内容动态生成,可以使用LayoutInflater动态添加TableRow,提高灵活性。 8. **TableLayoutProject项目**:该项目很可能包含了一个使用TableLayout的示例应用,通过解压并运行项目,可以直观地看到...
这通常在运行时根据数据动态生成表格,例如从网络或数据库加载数据。 - 可能使用`TableLayout.addView()`方法添加新的`TableRow`,并通过`TableRow.addView()`添加子视图。 3. **main.xml布局文件**: - 这个文件...
总结起来,动态生成Android表格界面涉及的关键知识点包括:`TableLayout`和`GridLayout`的使用,动态添加`View`和`ViewGroup`,数据绑定,自定义`Adapter`,以及可能的自定义`View`开发。通过理解和掌握这些,你可以...
本资源"android表格控件动态生成表格源码"提供了一种解决方案,它基于Eclipse IDE,可以帮助开发者实现动态生成表格的功能,同时解决了表格内容显示不全的问题,通过集成滚动条确保所有数据都能被用户查看。...
总之,Android的TableLayout布局以其灵活的行和列管理,以及自适应的列宽和伸缩属性,为移动应用的界面设计提供了强大支持。理解并熟练掌握TableLayout的特性,可以帮助开发者构建出更加高效和用户友好的应用程序。
- **跨列**:单元格可以跨列,但不能跨行。 3. **常用属性**: - `android:stretchColumns`:此属性用于TableLayout上,用于指定哪些列应该尽可能填充空白空间。可以使用数字或“*”表示所有列,例如“0,2”表示...
通过动态添加TableRow和TextView,我们可以根据当前月份生成对应的日历布局。 3. **阳历与农历转换**: 在这个项目中,源码实现了阳历和农历的转换。这通常涉及到复杂的算法,包括公历与农历之间的换算、节气计算...
在运行时,可以通过Java代码动态创建并添加TableRow到TableLayout。例如,可以创建一个循环来生成指定数量的行和列。 5. 注意事项: - 表格布局不适用于大量数据展示,因为性能问题,推荐使用RecyclerView或...