这是我利用android:clipChildren
属性的效果。
两层ViewGroup
分别调整clipChildren
属性
但是这个属性是属于ViewGroup
的,具体显示范围的处理都在ViewGrounp#getChildVisibleRect
中,
所以一个ViewGroup
只能让它的所有子View
同时可以超出自身或者同时不能超出自身。
我尝试寻找记录View
可显示区域到对象。但是没有结果,所以请问android
有什么办法可以让一个View
自由的调整它自己的显示区域?不对它的同层级View
造成影响呢?
<LinearLayout
android:layout_width="300dp"
android:orientation="vertical"
android:layout_height="300dp">
<View
android:id="@+id/top"
android:layout_width="100dp"
android:layout_height="100dp" />
<View
android:id="@+id/bottom"
android:layout_width="100dp"
android:layout_height="100dp" />
</LinearLayout>
即top
可以超出100*100
的显示范围限制,而不影响bottom
的显示范围控制在100*100
中?
问题更新
但是如果我在API21
上 使用了 <ripple/>
作为控件的背景。
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#FF0000" />
并且父控件没有使用clipChildren = false
,这个背景仍然可以超出控件的大小!他是通过什么办到的呢?
自定义group 测量子view 位置大小