布局中未显示 EditText 和 Textview

EditText and Textview not displayed in layout

嘿 Whosebug 社区。

我现在正在开发一个 android 应用程序,我在片段布局方面遇到了一些问题。

我的问题是textviews和edittexts没有显示出来,在android studio的版式设计模式下就像挤压一样。当我在模拟器中 运行 应用程序时也是一样的。我正在使用 relativeLayout 并且重力设置为底部。

我尝试了不同的方法,例如更改重力、relativeLayout 的布局高度和 textView/editText,但没有任何效果。 这是 XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.project.vincent.activityplanner.InfoPanelActivity"
android:gravity="bottom">

<TextView
    android:id="@+id/textView2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:background="@color/white"
    android:layout_above="@+id/textView3"
    android:text="test" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:background="@color/white"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/dateStart"
    android:text="test" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:background="@color/white"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/dateStart"
    android:layout_alignBottom="@+id/dateStart"
    android:text="Start" />

<EditText
    android:id="@+id/dateStart"
    android:layout_width="80dp"
    android:layout_height="wrap_content"
    android:inputType="date"
    android:ems="10"
    android:layout_toStartOf="@+id/timeStart"
    android:layout_alignBottom="@+id/timeStart" />

<EditText
    android:id="@+id/timeStart"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:inputType="time"
    android:ems="10"
    android:layout_above="@+id/timeEnd"
    android:layout_alignParentEnd="true" />

<TextView
    android:id="@+id/textView5"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:background="@color/white"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/dateEnd"
    android:text="Start" />

<EditText
    android:id="@+id/dateEnd"
    android:layout_width="80dp"
    android:layout_height="wrap_content"
    android:inputType="date"
    android:ems="10"
    android:layout_toStartOf="@+id/timeEnd"
    android:layout_alignBottom="@id/timeEnd"/>

<EditText
    android:id="@+id/timeEnd"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:inputType="time"
    android:ems="10"
    android:layout_above="@+id/ratingBar"
    android:layout_alignParentEnd="true" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Save" />

<RatingBar
    android:id="@+id/ratingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true" />

</RelativeLayout>

只有保存按钮和评分栏显示正确。

布局结果

布局预期

如果您知道如何解决这个问题,我将非常感谢您的帮助。

谢谢

RelativeLayout 允许您放置元素"one after another"。 在设计器中使用元素的 "layoutAlignComponent" 部分将它们粘在一起。 我可以看到您已经尝试使用 android:id="@+id/textView2",因为它有 android:layout_above="@+id/textView3" 字段。

首先你必须从父相关布局中删除 android:gravity="bottom" 属性 然后你必须添加以下代码以在底部显示你的保存按钮和评级栏

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Save" />

        <RatingBar
            android:id="@+id/ratingBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"/>


    </RelativeLayout>

然后你必须从文本视图中删除白色 属性 然后你可以看到你的文本视图并按照你的 UI.

对齐它们

以线性方式更改父布局layout.Because RelativeLayout 是一个视图
在相对位置显示子视图的组。每个视图的位置可以指定为相对于同级元素(例如另一个视图的左侧或下方)或相对于父 RelativeLayout 区域的位置(例如与底部、左侧或中心对齐)。

您的屏幕看起来像将父级更改为线性后的样子。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.project.vincent.activityplanner.InfoPanelActivity"
android:gravity="bottom">

<TextView
    android:id="@+id/textView2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:background="@color/white"
    android:layout_above="@+id/textView3"
    android:text="test" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:background="@color/white"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/dateStart"
    android:text="test" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:background="@color/white"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/dateStart"
    android:layout_alignBottom="@+id/dateStart"
    android:text="Start" />

<EditText
    android:id="@+id/dateStart"
    android:layout_width="80dp"
    android:layout_height="wrap_content"
    android:inputType="date"
    android:ems="10"
    android:layout_toStartOf="@+id/timeStart"
    android:layout_alignBottom="@+id/timeStart" />

<EditText
    android:id="@+id/timeStart"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:inputType="time"
    android:ems="10"
    android:layout_above="@+id/timeEnd"
    android:layout_alignParentEnd="true" />

<TextView
    android:id="@+id/textView5"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:background="@color/white"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/dateEnd"
    android:text="Start" />

<EditText
    android:id="@+id/dateEnd"
    android:layout_width="80dp"
    android:layout_height="wrap_content"
    android:inputType="date"
    android:ems="10"
    android:layout_toStartOf="@+id/timeEnd"
    android:layout_alignBottom="@id/timeEnd"/>

<EditText
    android:id="@+id/timeEnd"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:inputType="time"
    android:ems="10"
    android:layout_above="@+id/ratingBar"
    android:layout_alignParentEnd="true" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Save" />

<RatingBar
    android:id="@+id/ratingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true" />

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.project.vincent.activityplanner.InfoPanelActivity"
    android:gravity="bottom">

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:layout_above="@+id/textView3"
        android:text="test2" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:layout_alignParentStart="true"
        android:layout_above="@+id/dateStart"
        android:text="test3" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:layout_alignParentStart="true"
        android:layout_above="@+id/dateStart"
        android:layout_alignBottom="@+id/dateStart"
        android:text="Start" />

    <EditText
        android:id="@+id/dateStart"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:inputType="date"
        android:ems="10"
        android:layout_toStartOf="@+id/timeStart"
        android:layout_alignBottom="@+id/timeStart" />

    <EditText
        android:id="@+id/timeStart"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:inputType="time"
        android:ems="10"
        android:layout_above="@+id/timeEnd"
        android:layout_alignParentEnd="true" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:text="End" 
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/dateEnd"
        android:layout_above="@+id/ratingBar"/>

    <EditText
        android:id="@+id/dateEnd"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:inputType="date"
        android:ems="10"
        android:layout_toStartOf="@+id/timeEnd"
        android:layout_alignBottom="@id/timeEnd"/>

    <EditText
        android:id="@+id/timeEnd"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:inputType="time"
        android:ems="10"
        android:layout_above="@+id/ratingBar"
        android:layout_alignParentEnd="true" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Save"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"/>

    <RatingBar
        android:id="@+id/ratingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"/>

</RelativeLayout>