2011-12-29 13 views
4

なぜandroid:clipChildren = "false"が機能しないのですか?私は、CSSのオーバーフローと同じ効果を達成したい:親ビューの外に配置されていても子ビューが見えるようにする。私はこのようなことを試しましたが、Eclipseのグラフィカルレイアウトは正しい動作を示していますが、電話では動作しません。Android ViewGroupのクリップが機能しない

<?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="#0000FF" 
android:clipChildren="false" 
android:clipToPadding="false" > 

<RelativeLayout 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:layout_alignParentLeft="true" 
    android:background="#FF0000" 
    android:clipChildren="false" 
    android:clipToPadding="false" > 

    <RelativeLayout 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_marginLeft="120dp" 
     android:background="#00FF00" /> 
</RelativeLayout> 

</RelativeLayout> 
+0

これは面白いですが、逆に親が子どもを縛ることはできません。しかし、私はLinearLayoutを持っています。多分それが理由ですか? – Gangnus

答えて

1

が、私は今の似た何かをしよう、と私はすべての親にブースandroid:clipChildren="false"を使用する場合、それが重なった子の下にリストビューのように自分自身を再描画何かがある場合は、次の問題があるのみ動作し、Androidのは、私たちの子供を再描画忘れてしまいましたそれは:-(消え

唯一の方法です私も重なった子の少なくとも小さな平和はその親になければならないことがわかっ :-(その下のビューのすべての再描画後に重複した子に手動で.invalidate()を呼び出し

もう1つの問題は、タッチ/クリックイベントを受信することですwは親の外側です。私はそれのための解決策を見つけられませんでした。