处理TableLayout的有效方法?

问题描述 投票:0回答:3

我有表格布局的问题。我的表由24行和8列组成。在平板电脑中,它看起来很漂亮和合身。但在电话中,它看起来非常糟糕。

有没有办法处理表格布局,看起来很好在手机?使用任何图书馆或任何建议?

更新:

在Nexus 7平板电脑中。界面还可以。

enter image description here

在Nexus 5x中。这很糟糕。该值仅显示一半。

enter image description here

代码很长。注意:这不是我的代码。我只是为android dev找到一份工作,需要改进他们的代码。我只会显示1行和1列。

 <TableLayout
            android:id="@+id/tabla_cuerpo1b"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:gravity="center">

            <TableRow
                android:id="@+id/tbrl"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:gravity="center">

                <FrameLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"

                    android:paddingLeft="5dp"
                    android:paddingRight="5dp">

                    <TextView
                        android:id="@+id/mainLabel"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="top|right"
                        android:text="TPS"
                        android:textAppearance="?android:attr/textAppearanceLarge" />

                    <TextView
                        android:id="@+id/statView"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="bottom|left"
                        android:text="RPM"
                        android:textAppearance="?android:attr/textAppearanceLarge" />

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                         />

                    <TextView
                        android:id="@+id/speedL"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="\n"
                        android:textAppearance="?android:attr/textAppearanceLarge"
                        android:visibility="invisible" />
                </FrameLayout>

                <TextView
                    android:id="@+id/ld1"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"

                    android:gravity="center"

                    android:text="10%"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/ld2"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"

                    android:gravity="center"

                    android:text="20%"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/ld3"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"

                    android:gravity="center"

                    android:text="30%"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/ld4"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"

                    android:gravity="center"

                    android:text="40%"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/ld5"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"

                    android:gravity="center"

                    android:text="50%"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/ld6"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"

                    android:gravity="center"

                    android:text="60%"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/ld7"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"

                    android:gravity="center"

                    android:text="70%"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/ld8"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"

                    android:gravity="center"

                    android:text="80%"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
            </TableRow>
android android-tablelayout
3个回答
0
投票

试着读这个documentation。这是android的完整文档。仔细阅读WeightWeightSumWeight使布局更具响应性,并在屏幕上使用相同的空间。

例如

注意这是一个LinearLayout的例子

如果我想添加两个LinearLayout像这样:

enter image description here

这是代码:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_margin="50dp"
    android:background="@drawable/rounded_circle"
    android:weightSum="2"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_margin="10dp"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@drawable/rounded_circle"
        android:gravity="center"
        >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1"/>


    </LinearLayout>

    <LinearLayout
        android:layout_margin="10dp"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@drawable/rounded_circle"
        android:gravity="center"
        >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2"/>

    </LinearLayout>


</LinearLayout>


0
投票

我想我现在已经找到了最好的解决方案。解决方案是使用SCROLLVIEW以便在5英寸屏幕中使用。

谢谢。


0
投票

您可以在滚动视图中使用约束布局,它将帮助您简化布局层次结构并显着提高性能。

© www.soinside.com 2019 - 2024. All rights reserved.