我想实现与
类似的东西我不知道如何创建绿色布局而不为水平线以下的信息创建12个单独的文本视图。
我有一个包含
的activity_home.xml
文件
<LinearLayout
android:id="@+id/home_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="11dp"
android:layout_weight="0.4"
android:background="#118675"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp">
<TextView
android:id="@+id/main_strength_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Strength score: "
android:textColor="@color/main_text_green"
android:textSize="22sp" />
<TextView
android:id="@+id/main_strength_level"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/main_strength_number"
android:text="Placeholder"
android:textColor="@color/secondary_text_green" />
<View
android:id="@+id/home_horizontal_line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@+id/main_strength_level"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
android:background="@color/secondary_text_green" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="11dp"
android:layout_weight="0.4"
android:background="#ffffff"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
看起来像
忽略右下角的按钮
我还有一个home_exercise.xml
,其中包含3个文本视图,用于锻炼名称,力量级别和力量值,例如在第一张照片中可能是“深蹲”,“中间”和“72.2”
代码如下
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/home_exercise_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:text="name placeholder"
android:textColor="@color/main_text_green" />
<TextView
android:id="@+id/home_exercise_level"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:text="72.2"
android:textAlignment="textEnd"
android:textColor="@color/main_text_green"
android:textStyle="bold" />
<TextView
android:id="@+id/home_exercise_strength"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@id/home_exercise_name"
android:text="Intermediate"
android:textColor="@color/secondary_text_green" />
</RelativeLayout>
看起来像这样
但是,我不确定如何将这两个文件组合起来,以便在第一张图片中实现与应用程序类似的内容,或者它是否是正确的开始方式。
我也不确定,如果我将4个home_exercise.xml
布局合并到activity_home.xml
,我将如何区分所有TextViews
答案 0 :(得分:3)
如果行数不是常数,请使用带有自定义适配器的ListView或RecyclerView。
如果行数不变,则可以在xml中使用include
标记。 include标签允许您指定ID。
XML示例:
<include
android:id="@+id/home_exercise_one"
layout="@layout/home_exercise" />
然后在您的Java或Kotlin中进行简单的findViewById(R.id.home_exercise_one)
调用。要引用包含的xml的子项,您必须链接findViewByIds,如下所示:findViewById(R.id.home_exercise_one).findViewById(R.id.home_exercise_name)