首页 > 解决方案 > 在android中显示7天

问题描述

我在android方面的经验少一些。我正在根据下面附加的快照在 android 的屏幕上显示 7 个静态天。我尝试使用网格布局,但我的设计出现了 7 天,但它们不占据全屏宽度,它们之间的间距也不相等。我还希望用户能够选择一个日期,如下图所示,选择的日期应该被圈出。有关设计此功能的最佳方法的任何指示。

我的用户界面代码如下。

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="7"
android:rowCount="3">

<TextView
    android:id="@+id/dayLabel1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="0"
    android:layout_gravity="fill"
    android:gravity="center"
    android:text="M"
    android:textAlignment="center" />

<TextView
    android:id="@+id/dayLabel2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="1"
    android:layout_gravity="fill"
    android:gravity="center"
    android:text="M"
    android:textAlignment="center" />

<TextView
    android:id="@+id/dayLabel3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="2"
    android:layout_gravity="fill"
    android:gravity="center"
    android:text="M"
    android:textAlignment="center" />

<TextView
    android:id="@+id/dayLabel4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="3"
    android:layout_gravity="fill"
    android:gravity="center"
    android:text="M"
    android:textAlignment="center" />

<TextView
    android:id="@+id/dayLabel5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="4"
    android:layout_gravity="fill"
    android:gravity="center"
    android:text="M"
    android:textAlignment="center" />

<TextView
    android:id="@+id/dayLabel6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="5"
    android:layout_gravity="fill"
    android:gravity="center"
    android:text="M"
    android:textAlignment="center" />

<TextView
    android:id="@+id/dayLabel7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="6"
    android:layout_gravity="fill"
    android:gravity="center"
    android:text="M"
    android:textAlignment="center" />

<Button
    android:id="@+id/dateBtn1"
    style="@style/Widget.Sitrion.Button"
    android:layout_width="@dimen/calendar_day_width"
    android:layout_height="@dimen/calendar_day_height"
    android:layout_row="1"
    android:layout_column="0"
    android:background="@drawable/round_button"
    android:text="13" />

<Button
    android:id="@+id/dateBtn2"
    style="@style/Widget.Sitrion.Button"
    android:layout_width="@dimen/calendar_day_width"
    android:layout_height="@dimen/calendar_day_height"
    android:layout_row="1"
    android:layout_column="1"
    android:background="@drawable/round_button"
    android:text="13" />

<Button
    android:id="@+id/dateBtn3"
    style="@style/Widget.Sitrion.Button"
    android:layout_width="@dimen/calendar_day_width"
    android:layout_height="@dimen/calendar_day_height"
    android:layout_row="1"
    android:layout_column="2"
    android:background="@drawable/round_button"
    android:text="13" />

<Button
    android:id="@+id/dateBtn4"
    style="@style/Widget.Sitrion.Button"
    android:layout_width="@dimen/calendar_day_width"
    android:layout_height="@dimen/calendar_day_height"
    android:layout_row="1"
    android:layout_column="3"
    android:background="@drawable/round_button"
    android:text="13" />

<Button
    android:id="@+id/dateBtn5"
    style="@style/Widget.Sitrion.Button"
    android:layout_width="@dimen/calendar_day_width"
    android:layout_height="@dimen/calendar_day_height"
    android:layout_row="1"
    android:layout_column="4"
    android:background="@drawable/round_button"
    android:text="13" />

<Button
    android:id="@+id/dateBtn6"
    style="@style/Widget.Sitrion.Button"
    android:layout_width="@dimen/calendar_day_width"
    android:layout_height="@dimen/calendar_day_height"
    android:layout_row="1"
    android:layout_column="5"
    android:background="@drawable/round_button"
    android:text="13" />

<Button
    android:id="@+id/dateBtn7"
    style="@style/Widget.Sitrion.Button"
    android:layout_width="@dimen/calendar_day_width"
    android:layout_height="@dimen/calendar_day_height"
    android:layout_row="1"
    android:layout_column="6"
    android:background="@drawable/round_button"
    android:text="13" />

<ImageView
    android:id="@+id/dotIcon1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_row="2"
    android:layout_column="0"
    android:layout_gravity="center"
    android:layout_marginTop="5dp"
    app:srcCompat="@drawable/dotindicatoricon" />

<ImageView
    android:id="@+id/dotIcon2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_row="2"
    android:layout_column="1"
    android:layout_gravity="center"
    android:layout_marginTop="5dp"
    app:srcCompat="@drawable/dotindicatoricon" />

<ImageView
    android:id="@+id/dotIcon3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_row="2"
    android:layout_column="2"
    android:layout_gravity="center"
    android:layout_marginTop="5dp"
    app:srcCompat="@drawable/dotindicatoricon" />

<ImageView
    android:id="@+id/dotIcon4"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_row="2"
    android:layout_column="3"
    android:layout_gravity="center"
    android:layout_marginTop="5dp"
    app:srcCompat="@drawable/dotindicatoricon" />

<ImageView
    android:id="@+id/dotIcon5"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_row="2"
    android:layout_column="4"
    android:layout_gravity="center"
    android:layout_marginTop="5dp"
    app:srcCompat="@drawable/dotindicatoricon" />

<ImageView
    android:id="@+id/dotIcon6"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_row="2"
    android:layout_column="5"
    android:layout_gravity="center"
    android:layout_marginTop="5dp"
    app:srcCompat="@drawable/dotindicatoricon" />

<ImageView
    android:id="@+id/dotIcon7"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_row="2"
    android:layout_column="6"
    android:layout_gravity="center"
    android:layout_marginTop="5dp"
    app:srcCompat="@drawable/dotindicatoricon" />

</GridLayout>

在此处输入图像描述

标签: androidkotlin

解决方案


请通过这个问题。你需要的是将gridlayout的宽度设置为match_parent,即android:layout_width="wrap_content"

并设置内部元素的布局重力以填充并为每列赋予 1 的权重,例如

android:layout_gravity="fill"
android:layout_columnWeight="1"

推荐阅读