0

嘿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

如果您有關於如何解決這個問題,我就一個想法真的很感謝你的幫助。

謝謝

+0

什麼導致你想要的,這裏附上截圖 – USKMobility

+0

分享您樣機 – Darshak

+0

我剛纔編輯我的職位,以增加預期的結果。謝謝 – Gnarkkkkk

回答

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> 
+0

它完全按照我的預期工作,謝謝。 – Gnarkkkkk

0

RelativeLayout允許您將元素「一個接一個」放置。 使用desisgner中元素的「layoutAlignComponent」部分將它們彼此粘在一起。 我可以看到你已經試過你的android:id="@+id/textView2",因爲它有android:layout_above="@+id/textView3"字段。

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> 

按鈕和評價欄,然後你必須去除白顏色屬性,然後你可以看到你的textviews並按照你的UI對齊它們。

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

+0

你的意思是相對於線性的變化嗎? – Gnarkkkkk

+0

如果您使用相對佈局,則應該爲其子視圖提供依賴關係。 –

+0

謝謝你的回答,它接近我想要做的。但我想擺放一些元素,例如raatingbar和保存按鈕。我應該在linearLayout中使用相對佈局(或任何其他佈局)來創建具有多個元素的那些行嗎? – Gnarkkkkk

相關問題