【问题标题】:Responsive Table layout for different size screen android不同尺寸屏幕android的响应式表格布局
【发布时间】:2017-11-16 17:12:16
【问题描述】:

当我尝试开发一个简单的表格布局时,会出现问题。布局适用于大屏幕。但是当我在小型手机中使用它时,问题就出现了。完整的行不可见。

谁能帮帮我?我只想做一个这样的简单表格布局:

这里我做了xml布局

               <TableLayout
                android:layout_below="@+id/jonosonkha"
                android:layout_width="match_parent"
                android:layout_height="250dp"
                android:stretchColumns="5">
                <TableRow>
                    <TextView
                        android:textColor="#000"
                        android:background="#ffea00"
                        android:textSize="20sp"
                        android:text="পরিবার"
                        android:paddingLeft="5dp" />
                    <TextView
                        android:background="#000"
                        android:textColor="#fff"
                        android:textSize="20sp"
                        android:text="পুরুষ"
                        android:gravity="left"
                        android:paddingLeft="5dp"/>
                    <TextView
                        android:background="#ffea00"
                        android:textSize="20sp"
                        android:text="মহিলা"
                        android:textColor="#000"
                        android:gravity="center"
                        android:paddingLeft="5dp" />
                    <TextView
                        android:background="#000"
                        android:textSize="20sp"
                        android:text="গড় সদস্য"
                        android:gravity="left"
                        android:textColor="#fff"
                        android:paddingLeft="5dp" />
                    <TextView
                        android:background="#ffea00"
                        android:textColor="#000"
                        android:textSize="20sp"
                        android:text="ঘনত্ব/কি.মি"
                        android:gravity="left"
                        android:paddingLeft="5dp" />
                </TableRow>

                <TableRow
                    android:layout_marginTop="2dp"
                    >
                    <TextView
                        android:textColor="#000"
                        android:background="#ffea00"
                        android:textSize="16sp"
                        android:text="৮৯৮৬৩"
                        android:paddingLeft="5dp" />
                    <TextView
                        android:background="#000"
                        android:textColor="#fff"
                        android:textSize="16sp"
                        android:text="২০৫০৭৫"
                        android:gravity="center"
                        android:paddingLeft="5dp"/>
                    <TextView
                        android:background="#ffea00"
                        android:textSize="16sp"
                        android:text="২০৯১১৩"
                        android:textColor="#000"
                        android:gravity="center"
                        android:paddingLeft="5dp" />
                    <TextView
                        android:background="#000"
                        android:textSize="16sp"
                        android:text="৪.৫৪"
                        android:gravity="center"
                        android:textColor="#fff"
                        android:paddingLeft="5dp" />
                    <TextView
                        android:background="#ffea00"
                        android:textColor="#000"
                        android:textSize="16sp"
                        android:text="২১৩৮"
                        android:gravity="left"
                        android:paddingLeft="5dp" />
                </TableRow>
            </TableLayout>

它适用于大屏幕,但问题是某些行被小屏幕覆盖。请提供任何解决方案。

【问题讨论】:

  • 改用gridview
  • 一个简短的细节帮助更多。你有所需图像的示例代码吗?
  • 您可以在水平滚动视图中使用表格布局。看看这个解决方案。 stackoverflow.com/a/25460375/4824088
  • 我不需要滚动选项。我只需要一张像那张图片一样的桌子。但响应式我的意思是它应该适用于每种设备的屏幕尺寸。特别是较小的

标签: android


【解决方案1】:

你想划分五个TextView

您可以在TextView 中添加android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"

你可以试试这个。

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="250dp"
    android:layout_below="@+id/jonosonkha"
    android:stretchColumns="5">

    <TableRow>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#ffea00"
            android:paddingLeft="5dp"
            android:text="পরিবার"
            android:textColor="#000"
            android:textSize="20sp"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000"
            android:gravity="left"
            android:paddingLeft="5dp"
            android:text="পুরুষ"
            android:textColor="#fff"
            android:textSize="20sp"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#ffea00"
            android:gravity="center"
            android:paddingLeft="5dp"
            android:text="মহিলা"
            android:textColor="#000"
            android:textSize="20sp"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000"
            android:gravity="left"
            android:paddingLeft="5dp"
            android:text="গড় সদস্য"
            android:textColor="#fff"
            android:textSize="20sp"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#ffea00"
            android:gravity="left"
            android:paddingLeft="5dp"
            android:text="ঘনত্ব/কি.মি"
            android:textColor="#000"
            android:textSize="20sp"/>
    </TableRow>

    <TableRow
        android:layout_marginTop="2dp">

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#ffea00"
            android:paddingLeft="5dp"
            android:text="৮৯৮৬৩"
            android:textColor="#000"
            android:textSize="16sp"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000"
            android:gravity="center"
            android:paddingLeft="5dp"
            android:text="২০৫০৭৫"
            android:textColor="#fff"
            android:textSize="16sp"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#ffea00"
            android:gravity="center"
            android:paddingLeft="5dp"
            android:text="২০৯১১৩"
            android:textColor="#000"
            android:textSize="16sp"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000"
            android:gravity="center"
            android:paddingLeft="5dp"
            android:text="৪.৫৪"
            android:textColor="#fff"
            android:textSize="16sp"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#ffea00"
            android:gravity="left"
            android:paddingLeft="5dp"
            android:text="২১৩৮"
            android:textColor="#000"
            android:textSize="16sp"/>
    </TableRow>
</TableLayout>

输出

【讨论】:

  • 它对我来说很好用。这是一个小问题。长文本(在标题中)被分成两行。有什么办法可以让它们排成一行?
  • 你只需要改变TextView的大小。因为你的空间是你屏幕的1/5。
  • 祝你好运。@MamunNayeem
【解决方案2】:

你应该定义表格行的宽度属性,比如:

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

以及所有Textview的权重属性:

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:textColor="#000"
    android:background="#ffea00"
    android:textSize="20sp"
    android:text="পরিবার"
    android:paddingLeft="5dp" />

【讨论】:

    猜你喜欢
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多