2012-01-11 7 views
1
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#cccccc"> 

    <!-- LEFT --> 
    <FrameLayout 
     android:layout_marginTop="50px" 
     android:layout_marginLeft="50px" 
     android:layout_width="50px" 
     android:layout_height="50px" 
     android:background="#ff0000" 
     android:id="@+id/lp" /> 

    <FrameLayout 
     android:layout_width="50px" 
     android:layout_height="100px" 
     android:background="#00ff00" 
     android:layout_toRightOf="@id/lp" 
     android:layout_alignTop="@id/lp" 
     android:id="@+id/lc" />   
    <!-- END LEFT --> 

    <!-- RIGHT --> 
    <FrameLayout 
     android:layout_marginTop="50px" 
     android:layout_marginLeft="300px" 
     android:layout_width="50px" 
     android:layout_height="50px" 
     android:background="#ff0000" 
     android:id="@+id/rp" /> 

    <FrameLayout 
     android:layout_width="50px" 
     android:layout_height="100px" 
     android:background="#00ff00" 
     android:layout_toLeftOf="@id/rp" 
     android:layout_alignTop="@id/rp" 
     android:id="@+id/rc" />   
    <!-- END LEFT -->  
</RelativeLayout> 

結果は動作しません:アンドロイドRelativeLayout layout_toLeftOfは

enter image description here

私は期待してどのようなものです:

enter image description here

それが動作しないのはなぜ?ここで

+0

以下の答えは単なる回避策ですが、私はあなたのコードが動作しない理由を知りたい:

ので、魔法がマージンなしでダミーのビューを入れて! – wangqi060934

答えて

1

は、私の答えは、それが働いて得ることです:

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

    <!-- LEFT --> 
    <View 
     android:layout_alignParentLeft="true" 
     android:layout_marginTop="50dp" 
     android:layout_marginLeft="50dp" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="#ff0000" 
     android:id="@+id/lp" /> 

    <View 
     android:layout_width="50dp" 
     android:layout_height="100dp" 
     android:background="#00ff00" 
     android:layout_toRightOf="@id/lp" 
     android:layout_alignTop="@id/lp" 
     android:id="@+id/lc" />   
    <!-- END LEFT --> 

    <!-- RIGHT --> 
    <View 
     android:layout_alignParentRight="true" 
     android:layout_marginTop="50dp" 
     android:layout_marginRight="50dp" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="#ff0000" 
     android:id="@+id/rp" /> 

    <View 
     android:layout_width="50dp" 
     android:layout_height="100dp" 
     android:background="#00ff00" 
     android:layout_toLeftOf="@id/rp" 
     android:layout_alignTop="@id/rp" 
     android:id="@+id/rc" />   
    <!-- END LEFT -->  
</RelativeLayout> 

ピクセルを使用しないでください。 dip/dp(独立したピクセル)を使用します。また、色付きのブロックを作成するには、ビューのみが必要ですが、その中に何が入っているかによって異なります。

私はレイアウトのために、それは本当に重宝このチュートリアルを読む - http://www.learn-android.com/2010/01/05/android-layout-tutorial/5/

+0

これは本当にトリッキーです、ありがとうございます:-) – agibalov

0

アンドロイドから:layout_toLeftOf定義: 体位与えられたアンカーのビューIDの左側にあるこのビューの右端。 このビューの右マージンとアンカービューの左余白を受け入れます。

<View 
    android:id="@+id/ltEdge" 
    android:layout_height="match_parent" 
    android:layout_width="0dp" 
    android:layout_alignLeft="@id/lp"   
     /> 

    <View 
    android:layout_width="50px" 
    android:layout_height="100px" 
    android:background="#00ff00" 
    android:layout_toRightOf="@id/ltEdge" 
    android:layout_alignTop="@id/lp" 
    android:id="@+id/lc" /> 
関連する問題