[英]Cannot create two TextView in two lines
這是一個門外漢的問題,因為我在Android開發中完全是綠色的。
最近,我正在嘗試使用android實現一個簡單的計算器。
我要顯示兩行計算器,最上面的一行顯示用戶輸入的方程式,最下面的一行顯示答案。
這是我在布局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=".MainActivity" >
<LinearLayout
android:id="@+id/linearLayout0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true">
<TextView
android:id="@+id/calculatorDisplay0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:maxLines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="40sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_below="@+id/linearLayout0" >
<TextView
android:id="@+id/calculatorDisplay1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_below="@id/calculatorDisplay0"
android:maxLines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="0"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="40sp" />
</LinearLayout>
.
.
.
.
但是,這是結果:
如您所見,這兩行嵌套在一起。
我很確定我的代碼有問題,但是我找不到它。 有人可以幫我嗎?
沒有理由為每個文本視圖使用單獨的線性布局-將它們以垂直方向放置在一個布局中,一個接一個地放置:
<LinearLayout
android:id="@+id/linearLayout0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/calculatorDisplay0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:maxLines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="40sp" />
<TextView
android:id="@+id/calculatorDisplay1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:maxLines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="0"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="40sp" />
</LinearLayout>
另外,您還有一些不必要的屬性,已在y答案中將其刪除。
而不是添加兩個LinearLayouts,而是添加一個帶有兩個TextView的對象,並將orientation
設置為vertical
。 線性布局是用於存儲“線性”內容的容器,因此一個孩子一個接一個。
<LinearLayout
android:id="@+id/linearLayout0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:orientation="vertical">
<TextView
android:id="@+id/calculatorDisplay0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:maxLines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="40sp" />
<TextView
android:id="@+id/calculatorDisplay1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_below="@id/calculatorDisplay0"
android:maxLines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="0"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="40sp" />
</LinearLayout>
嘗試從linearLayout1刪除android:layout_alignParentTop =“ true”並在其頂部添加邊距。
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
這些是第二個LinearLayout中的屬性,在該屬性中您已明確聲明要讓第二個TextView(LinearLayout的內容)與頂部的重疊。 我不確定,但我認為如果layout_*
該LinearLayout中指定layout_*
屬性,您將得到相同的結果。 在第二個外觀上,它接縫android:layout_below="@+id/linearLayout0"
屬性被忽略了。 無論如何,它都與layout_alignParentTop
沖突,請layout_alignParentTop
注意。
您描述的期望行為是具有android:orientation="vertical"
屬性的LinearLayout的典型行為。 您在正確的軌道上。 您需要更改的是在第一個LinearLayout中移動第二個TextView,因為默認方向是水平[1] ,所以可以看到它有兩個視圖可以管理和添加所需的orientation
屬性。
布局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=".MainActivity" >
<LinearLayout
android:id="@+id/linearLayout0"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/calculatorDisplay0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:maxLines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="40sp" />
<TextView
android:id="@+id/calculatorDisplay1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_below="@id/calculatorDisplay0"
android:maxLines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="0"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="40sp" />
</LinearLayout>
.
.
.
.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.