EditText和Textview未在布局中显示

时间:2016-04-21 04:43:50

标签: android android-layout android-fragments android-studio android-relativelayout

Hey StackOverflow社区。

我正在开发一个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>

仅正确显示保存按钮和评级栏。

布局结果

Layout result

布局预期

Layout expectation

如果您对如何解决此问题有所了解,我将非常感谢您的帮助。

由于

4 个答案:

答案 0 :(得分:1)

<?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>

答案 1 :(得分:0)

RelativeLayout允许您一个接一个地放置元素&#34;。 使用&#34; layoutAlignComponent&#34;你的元素部分在desisgner中彼此粘在一起。 我可以看到您已尝试使用android:id="@+id/textView2",因为它有android:layout_above="@+id/textView3"字段。

答案 2 :(得分:0)

首先,您必须从父相对布局中删除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对齐它们。

答案 3 :(得分:0)

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

将父级更改为线性后,您的屏幕看起来像 [screenshot]

<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" />