添加到表格的行未显示
Posted
技术标签:
【中文标题】添加到表格的行未显示【英文标题】:Rows added to table are not showing up 【发布时间】:2011-06-18 15:57:38 【问题描述】:以前有人问过这个问题,但我还没有找到适合我的解决方案:
从代码向表中添加行时,这些行不会显示在应用程序中。我在 XML 中指定了一行,该行正在显示,但其下方没有任何内容。
这是代码,我也添加了我的类的构造函数:
private LayoutInflater theInflater;
private LinkedList<View> rows;
private Context thisContext;
public DistanceTableView(LayoutInflater vi, Context context)
theInflater = vi;
rows = new LinkedList<View>();
thisContext = context;
public void addRow(LocationMessage locationMsg)
View messageView = theInflater.inflate(R.layout.homepage, null);
TableLayout table = (TableLayout)messageView.findViewById(R.id.distanceTable);
TextView senderNameTextView = new TextView(thisContext);
senderNameTextView.setText(locationMsg.getSenderName());
TableRow tr = new TableRow(thisContext);
tr.addView(distanceTextView);
table.addView(tr);
rows.addFirst(messageView);
homepage.xml 包含这个,我删除了一些元素和参数:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout>
<TabHost>
<TabWidget />
<FrameLayout>
[..]
<LinearLayout>
[..]
<TableLayout
android:id="@+id/distanceTable"
android:layout_
android:layout_
android:layout_gravity="center"
android:background="#DDDDDD"
android:stretchColumns="1" >
<TableRow>
<TextView
android:textColor="#000000"
android:text="@string/label_device"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
<TextView
android:textColor="#000000"
android:text="@string/label_distance"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
<TextView
android:textColor="#000000"
android:text="@string/label_time"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
</TableRow>
</TableLayout>
</LinearLayout>
</FrameLayout>
</TabHost>
</LinearLayout>
不幸的是,hierarchyviewer.bat 不适用于我检查行是否存在但不可见。在调试器中,我觉得它很好。
【问题讨论】:
您的addRow()
方法在您的Activity
中吗?什么是rows
- 它是如何初始化的,addFirst()
有什么作用? thisContext
是如何初始化的?
我在上面的问题中扩展了代码部分。 rows
是视图的 LinkedList
。我添加了初始化这些东西的构造函数。 addRow()
位于一个扩展另一个类的类中,该类扩展了 MapActivity
。
【参考方案1】:
我认为您应该在添加新行后调用 TableLayout.requestLayout()。
来自docs:
当事情发生变化时调用它 这使布局无效 这种观点。这将安排布局 视图树的传递。
【讨论】:
很遗憾,这没有帮助。以上是关于添加到表格的行未显示的主要内容,如果未能解决你的问题,请参考以下文章