Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果TableRows的数量超过某个数字,为什么带有TextView的TableRows不显示在TableLayout中?_Java_Android_Android Layout_Android Tablelayout - Fatal编程技术网

Java 如果TableRows的数量超过某个数字,为什么带有TextView的TableRows不显示在TableLayout中?

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行),智能手机屏幕上将显示文本视图。另一件奇怪的事情是,似乎没有显示的内容在那里,但却不可见

这是我第一次尝试编写一个“简单”的android应用程序。遗憾的是,我发现我的galaxy sIII mini上显示csv文件内容的应用程序与AVD上的不同。奇怪的是,在AVD中,csv文件中的所有条目(例如400条)都可以正确显示。与我的智能手机不同,智能手机中包含文本视图的TableRows组成的TableLayout不显示任何值(不会发生错误)。如果我更改csv文件中的行数(例如从400行更改为80行),智能手机屏幕上将显示文本视图。另一件奇怪的事情是,似乎没有显示的内容在那里,但却不可见。如果我在智能手机屏幕上单击,将调用单击事件,我可以在日志输出中看到值正在打印到控制台

正在运行时添加TableRows和TextView。TextView的数量取决于列的数量,TableRows的数量取决于csv文件中的条目。“firstAddressRow”由列标题填充

以下是我对正在使用的活动对象的布局定义:

<?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
无法正常工作的原因。