2012-07-04 88 views
-1

我一直在嘗試找到一段時間來完成此操作的最佳方法。我想是這樣的:在相對佈局中排列元素

隨着代碼:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" > 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.5" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.5" 
     android:text="Button" /> 
</LinearLayout> 

<ProgressBar 
    android:id="@+id/progressBar1" 
    style="?android:attr/progressBarStyleLarge" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/progressBar1" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="50dp" 
    android:text="Button" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="49dp" 
    android:text="Large Text" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/progressBar1" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="52dp" 
    android:text="TextView" /> 

我有這個佈局:

The Layout I'm after

這裏的問題是利潤固定的dpi數量。我想獲得某種流暢度。

我想這個問題的方法:

空間上方的進度條中3個相等的部分被分離,所述 第一個文本的上方,所述第一和所述第二文本之間和第二 文本和進度條之間

不確定進度條 - 居中在垂直和水平中間。

進度條下方的空間在2個相等部分分隔 - 進度條和按鈕之間以及按鈕和底部之間的線性佈局 。

有沒有辦法做到這一點?我寧願在佈局文件 中這樣做,但我也可以進行編程和間距編程。

+0

標記有效答案 – Nactus

回答

0
<?xml version="1.0" encoding="utf-8"?> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:gravity="center" 
    android:text="Large Text" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 


<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:gravity="center" 
    android:text="TextView" /> 

<LinearLayout 
    android:id="@+id/pb" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:gravity="center" > 

    <ProgressBar 
     android:id="@+id/progressBar1" 
     style="?android:attr/progressBarStyleLarge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

<LinearLayout 
    android:id="@+id/b1" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:gravity="center" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button" /> 
</LinearLayout> 


<LinearLayout 
    android:id="@+id/b2" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:gravity="center" > 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button" /> 
</LinearLayout> 

0

你可以試試這個:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:id="@+id/btn_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" > 

     <Button 
      android:id="@+id/button2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.5" 
      android:text="Button" /> 

     <Button 
      android:id="@+id/button3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.5" 
      android:text="Button" /> 
    </LinearLayout> 

    <ProgressBar 
     android:id="@+id/progressBar1" 
     style="?android:attr/progressBarStyleLarge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" /> 

    <RelativeLayout 
     android:id="@+id/btn_wrapper" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@id/btn_bar" 
     android:layout_below="@id/progressBar1" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:text="Button" /> 
    </RelativeLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@id/progressBar1" 
     android:layout_alignParentTop="true" 
     android:gravity="center_horizontal" 
     android:orientation="vertical" > 

     <View 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="0" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <View 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="0" 
      android:text="TextView" /> 

     <View 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 
    </LinearLayout> 

</RelativeLayout> 
0

這是一個粗略的佈局RelativeLayout

<RelativeLayout> 
<TextView 
    android:id="@+id/textView1" 
    android:layout_above="@+id/textView2" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_above="@+id/progressBar1" /> 

<ProgressBar 
    android:id="@+id/progressBar1" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_below="@+id/progressBar1" /> 

<TableRow 
    android:layout_below="@+id/button1" 
    android:weightSum="1.0"> 

<Button 
    android:layout_weight="0.5" /> 

<Button 
    android:layout_weight="0.5" /> 

</TableRow> 

</RelativeLayout> 

注意:參考ProgressBar在中心你可以安排上部和底部佈局。