我是Android新手
我正在尝试显示一个可滚动的表格
Android Studio上的XML可视化工具显示它很好,但我的设备没有显示它
在我的设备中,我只能看到第一个TextView
(routine_heading)
我该怎么做才能克服这个问题?
以下是我使用的XML代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/routine_heading"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/routine_header"
android:textAppearance="?android:textAppearanceLarge"/>
<ScrollView
android:id="@+id/layout"
android:layout_height="wrap_content"
android:scrollbars="horizontal|vertical"
android:layout_width="match_parent"
android:layout_marginTop="8dip"
android:scrollbarStyle="outsideOverlay"
android:fillViewport="false">
<HorizontalScrollView
android:id="@+id/horizontalView"
android:layout_height="wrap_content"
android:scrollbars="horizontal|vertical"
android:layout_width="wrap_content"
android:layout_marginTop="5dip">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tlGridTable"
android:stretchColumns="*">
<TableRow
android:layout_weight="1">
<TextView
android:background="@drawable/cell"
android:text=""
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1"/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/cell"
android:text="10-10:50"
android:padding="3dip"
android:layout_height="match_parent"
/>
<TextView
android:text="10:50-11:40"
android:background="@drawable/cell"
android:padding="3dip"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
/>
<TextView
android:background="@drawable/cell"
android:text="11:40-12:30"
android:padding="3dip"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
/>
<TextView
android:background="@drawable/cell"
android:text="12:30-1:20"
android:padding="3dip"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
/>
<TextView
android:background="@drawable/cell"
android:text="2:35-3:20"
android:padding="3dip"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1"
/>
<TextView
android:background="@drawable/cell"
android:text="3:20-4:00"
android:padding="3dip"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
/>
<TextView
android:background="@drawable/cell"
android:text="4:00-4:50"
android:padding="3dip"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
/>
</TableRow>
</TableLayout>
</HorizontalScrollView>
</ScrollView>
</LinearLayout>
答案 0 :(得分:1)
问题是您要将列大小设置为拉伸到其父级!其父级是HorizontalScrollView,它具有无限宽度!因此,它无法确定其重量。
所以,你需要把你的表放在ScrollView(垂直)中,然后在Table里面有HorizontalScrollView。此外,您需要在更改后添加height m width属性。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/routine_heading"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/routine_header"
android:textAppearance="?android:textAppearanceLarge"/>
<ScrollView
android:id="@+id/layout"
android:layout_height="wrap_content"
android:scrollbars="horizontal|vertical"
android:layout_width="match_parent"
android:layout_marginTop="8dip"
android:scrollbarStyle="outsideOverlay"
android:fillViewport="false">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tlGridTable"
android:stretchColumns="*">
<HorizontalScrollView
android:id="@+id/horizontalView"
android:layout_height="wrap_content"
android:scrollbars="horizontal|vertical"
android:layout_width="wrap_content"
android:layout_marginTop="5dip">
<TableRow
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:background="@drawable/cell"
android:text=""
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1"/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/cell"
android:text="10-10:50"
android:padding="3dip"
android:layout_height="match_parent"
/>
<TextView
android:text="10:50-11:40"
android:background="@drawable/cell"
android:padding="3dip"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
/>
<TextView
android:background="@drawable/cell"
android:text="11:40-12:30"
android:padding="3dip"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
/>
<TextView
android:background="@drawable/cell"
android:text="12:30-1:20"
android:padding="3dip"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
/>
<TextView
android:background="@drawable/cell"
android:text="2:35-3:20"
android:padding="3dip"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1"
/>
<TextView
android:background="@drawable/cell"
android:text="3:20-4:00"
android:padding="3dip"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
/>
<TextView
android:background="@drawable/cell"
android:text="4:00-4:50"
android:padding="3dip"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
/>
</TableRow>
</HorizontalScrollView>
</TableLayout>
</ScrollView>
</LinearLayout>
建议使用带适配器的ListView / RecyclerView 有点作品。
答案 1 :(得分:0)
如果您想要滚动表,通常使用private static async Task RunEveryMillisecond(CancellationToken token)
{
Stopwatch s = Stopwatch.StartNew();
TimeSpan prevValue = TimeSpan.Zero;
int i = 0;
while (true)
{
Console.WriteLine(s.ElapsedMilliseconds);
await MultimediaTimer.Delay(1, token);
if (Console.KeyAvailable)
{
return;
}
i++;
}
}
+ ListView
。
适配器的每个项目都应该创建一个&#34;行&#34; &#34;表&#34;。
使用Adapter
可以帮助进行垂直和水平滚动。
答案 2 :(得分:0)
在Scrollview下面添加表格布局(进入子视图),就像这样
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/routine_heading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/app_name"
android:textAppearance="?android:textAppearanceLarge"
/>
<ScrollView
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dip"
android:fillViewport="false"
android:scrollbarStyle="outsideOverlay"
android:scrollbars="horizontal|vertical"
>
<TableLayout
android:id="@+id/tlGridTable"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="*"
>
<HorizontalScrollView
android:id="@+id/horizontalView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:scrollbars="horizontal|vertical"
>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:text=""
/>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:padding="3dip"
android:text="10-10:50"
/>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:padding="3dip"
android:text="10:50-11:40"
/>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:padding="3dip"
android:text="11:40-12:30"
/>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:padding="3dip"
android:text="12:30-1:20"
/>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:padding="3dip"
android:text="2:35-3:20"
/>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:padding="3dip"
android:text="3:20-4:00"
/>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:padding="3dip"
android:text="4:00-4:50"
/>
</TableRow>
</HorizontalScrollView>
</TableLayout>
</ScrollView>
</TableLayout>