2012-11-04 103 views
0

我正在創建我的第一個強大的android應用程序,並且在嘗試佈置主窗體上的控件時遇到了很多麻煩。表格佈局麻煩。新的android

我有4個textviews,1個複選框和1個按鈕。 使用Galaxy Nexus(4.65英寸)進行調試,但使用4英寸屏幕尺寸,因此我可以使用我的應用程序適應更小的屏幕尺寸。

每當我嘗試移動一個文本視圖或按鈕時,所有其他控件似乎都會自行移動到另一個位置。當我調試時,還有一半的按鈕位置給了我一個關閉的力量。似乎它不應該很難佈局控件,但是我再次來自winforms和asp.net。

任何意見將不勝感激!

編輯:添加了xml。我已經嘗試了換行的寬度/高度,匹配父級和自定義大小以及所有相同的結果。也許我的控件應該在某種類似asp.net的表中?

<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:background="#808080" > 

<Button 
    android:id="@+id/btnOK" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="38dp" 
    android:background="#FFFFFF" 
    android:onClick="onOKclicked" 
    android:text="@string/OkButton" /> 

<CheckBox 
    android:id="@+id/chkShow" 
    android:layout_width="300dp" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/btnOK" 
    android:layout_alignParentRight="true" 
    android:layout_marginBottom="40dp" 
    android:text="@string/DoNotShow" 
    android:textColor="#FFFFFF" 
    android:textSize="16dp" /> 

<TextView 
    android:id="@+id/txt3G" 
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/chkShow" 
    android:layout_marginBottom="112dp" 
    android:text="@string/Description3G" 
    android:textColor="#FFFFFF" 
    android:textSize="16dp" /> 

<TextView 
    android:id="@+id/txt4G" 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/txt3G" 
    android:layout_alignLeft="@+id/chkShow" 
    android:layout_marginBottom="36dp" 
    android:text="@string/Description4G" 
    android:textColor="#FFFFFF" 
    android:textSize="16dp" /> 

<TextView 
    android:id="@+id/txtDescription" 
    android:layout_width="250dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="20dp" 
    android:layout_marginTop="14dp" 
    android:text="@string/Instructions1" 
    android:textColor="#FFFF00" 
    android:textSize="16dp" /> 

<TextView 
    android:id="@+id/txtBattery" 
    android:layout_width="100dp" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/txt3G" 
    android:layout_alignBottom="@+id/txt3G" 
    android:layout_alignLeft="@+id/btnOK" 
    android:layout_marginLeft="30dp" 
    android:text="@string/DescriptionBattery" 
    android:textColor="#FFFF00" 
    android:textSize="14dp" 
    android:textStyle="italic" /> 

</RelativeLayout> 
+0

發佈您的XML文件,它可能會讓人們更容易幫助您 – jcw

+0

我已經添加了它 –

回答

0

由於您正在使用相對佈局,當您移動按鈕時,相對於該按鈕放置的控件的佈局會中斷。

爲什麼你會得到調試問題,我不知道。你可以發佈堆棧跟蹤或有用的東西?

+0

它看起來像我得到的錯誤是...無法啓動活動CompnonetInfo。 Java類異常:android.widget.textview不能轉換爲android.widget.checkbox –

+0

請將您的活動代碼包括頂部和onCreate()中的聲明。此外,這不是嚴格的錯誤,但這是不好的做法。更改android:layout_above =「@ + id/btnOK」---> android:layout_above =「@ id/btnOK」注意不要加。 @ id + /表示創建一個新的ID,@ id /引用一個現有的ID。 – Simon

+0

顯然你試圖給複選框變量分配一個textview。不僅如此,我不能不看代碼。 – gabga