Hey StackOverflow社区。 p>
我正在开发一个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>
仅正确显示保存按钮和评级栏。
布局结果
布局预期
如果您对如何解决此问题有所了解,我将非常感谢您的帮助。
由于
答案 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区域的位置(例如与底部,左侧或中心对齐)。
<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" />