在我的Android应用程序中,我正在定义以下布局,该工作正常。
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black">
<com.test.zoom.ImageZoomView
android:id="@+id/zoomview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ZoomControls
android:id="@+id/zoomControls"
android:layout_width="130dp"
android:layout_height="50dp"
android:layout_gravity="bottom|right"/>
</FrameLayout>
但是当在FrameLayout上设置布局参数时,ZoomControls就消失了。 你有提示我做错了吗?
ViewTreeObserver viewTreeObserver = frame.getViewTreeObserver();
if (viewTreeObserver.isAlive()) {
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
frame.getViewTreeObserver().removeGlobalOnLayoutListener(this);
frame.setLayoutParams(new LinearLayout.LayoutParams(frame.getMeasuredWidth(), frame.getMeasuredWidth()));
}
});
}
答案 0 :(得分:0)
您的ZoomControls是FrameLayout的子级。因此,如果删除FrameLayout,它的所有子项(com.test.zoom.ImageZoomView&amp; ZoomControls)也将被删除。
尝试使ZoomControl独立于FrameLayout,如下所示:
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black">
<com.test.zoom.ImageZoomView
android:id="@+id/zoomview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</FrameLayout>
<ZoomControls
android:id="@+id/zoomControls"
android:layout_width="130dp"
android:layout_height="50dp"
android:layout_gravity="bottom|right"/>