Java 如果TableRows的数量超过某个数字,为什么带有TextView的TableRows不显示在TableLayout中?
这是我第一次尝试编写一个“简单”的android应用程序。遗憾的是,我发现我的galaxy sIII mini上显示csv文件内容的应用程序与AVD上的不同。奇怪的是,在AVD中,csv文件中的所有条目(例如400条)都可以正确显示。与我的智能手机不同,智能手机中包含文本视图的TableRows组成的TableLayout不显示任何值(不会发生错误)。如果我更改csv文件中的行数(例如从400行更改为80行),智能手机屏幕上将显示文本视图。另一件奇怪的事情是,似乎没有显示的内容在那里,但却不可见。如果我在智能手机屏幕上单击,将调用单击事件,我可以在日志输出中看到值正在打印到控制台 正在运行时添加TableRows和TextView。TextView的数量取决于列的数量,TableRows的数量取决于csv文件中的条目。“firstAddressRow”由列标题填充 以下是我对正在使用的活动对象的布局定义:Java 如果TableRows的数量超过某个数字,为什么带有TextView的TableRows不显示在TableLayout中?,java,android,android-layout,android-tablelayout,Java,Android,Android Layout,Android Tablelayout,这是我第一次尝试编写一个“简单”的android应用程序。遗憾的是,我发现我的galaxy sIII mini上显示csv文件内容的应用程序与AVD上的不同。奇怪的是,在AVD中,csv文件中的所有条目(例如400条)都可以正确显示。与我的智能手机不同,智能手机中包含文本视图的TableRows组成的TableLayout不显示任何值(不会发生错误)。如果我更改csv文件中的行数(例如从400行更改为80行),智能手机屏幕上将显示文本视图。另一件奇怪的事情是,似乎没有显示的内容在那里,但却不可见
<?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"
android:background="@color/background_panel">
<Button android:layout_width="fill_parent" android:layout_height="40dp" android:onClick="updateCanvas" android:text="Update"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="vertical">
<LinearLayout android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<HorizontalScrollView android:id="@+id/horizontalScrollView"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TableLayout
android:id="@+id/addressTable"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:orientation="horizontal"
android:alpha="0.9">
<TableRow
android:id="@+id/firstAddressRow">
</TableRow>
</TableLayout>
</HorizontalScrollView>
</LinearLayout>
</ScrollView>
</LinearLayout>
有人知道我的错误在哪里吗?我想也许我必须再次刷新或更新布局和视图,但没有“失效”或更新功能成功
我在顶部插入的按钮只是一个实验。updateCanvas方法只删除一些TableRows,奇怪的是,如果删除了足够多的TableRows,我会再次看到TextView。我知道我在介绍中已经提到了,但是AVD工作得很好。如果有人能帮我,我会非常感激。。。太令人沮丧了
如果您需要更多信息或更多代码,请告诉我。首先,嵌套滚动视图充其量是很挑剔的,通常根本不起作用。其次,按原样使用
表格布局
会导致其中的每个视图
同时加载,并可能导致性能低下和更大的开销。您是否考虑过改用列表视图
?您好!谢谢你的回复!是的,我确实考虑过使用ListVIEW,但是我认为采取一个表格是更自然的,因为CSV文件很像一个表。此外,我希望能够点击每个文本视图。是否可以创建包含多个列的ListView,或者是否需要为CSV文件中的每一列创建ListView?我继续研究这个问题,发现有些人也有类似的问题,这与堆空间不足有关。你有这方面的经验吗?这可能吗?使用自定义的适配器
和行布局,您可以创建一个看起来像电子表格的列表视图
,我想这就是您想要的。TextView
s只需在行之间具有一致的大小即可创建列效果,并且每个行都将像任何其他View
一样响应单击事件。列表视图
的结果是,它回收行及其子视图s;i、 例如,几乎只有您在屏幕上看到的视图
被加载,这减少了开销。缺点是Android还没有一个能可靠地双向滚动的视图或它们的组合。WebView
可以很好地处理双向滚动,但是如果你要这样做,你必须用JavaScript实现你的表和至少一些事件处理。谢谢你的补充评论。我尝试了一个新的设计,但还没有实现。我将尝试使用PageViewer
,其中包含GridView
s。因此,我将尝试分割列的数量,用户可以在列中滑动。渲染问题仍然困扰着我。虽然手机上没有使用TableLayout
显示数据,但它仍然存在,因为我可以与TextView
s进行交互。您是否有调试渲染问题的经验?我从哪里开始?这只是为了兴趣。我想找出TableLayout
无法正常工作的原因。