Android-如何在调用setVisible(view.GONE)后保持视图位置不变?

Android-如何在调用setVisible(view.GONE)后保持视图位置不变?,android,layout,view,Android,Layout,View,我有一个RootLayout[可以设置为任何布局],例如: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainRootLayout" android:layout_width="wrap_content" android:layout_h

我有一个RootLayout[可以设置为任何布局],例如:

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

    <ImageButton
        android:id="@+id/ibtnHidden"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"

        android:src="@android:drawable/ic_menu_add" />

    <ImageButton
        android:id="@+id/ibtnPlay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/ibtnHidden"
        android:layout_marginLeft="9dp"
        android:layout_toRightOf="@+id/ibtnHidden"
        android:src="@android:drawable/ic_media_play" />

    <ImageButton
        android:id="@+id/ibtnPreference"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/ibtnHidden"
        android:layout_marginLeft="9dp"
        android:layout_toRightOf="@+id/ibtnPlay"
        android:src="@android:drawable/ic_menu_preferences" />

    <ImageButton
        android:id="@+id/ibtnExit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/ibtnHidden"
        android:layout_marginLeft="9dp"
        android:layout_toRightOf="@+id/ibtnPreference"
        android:src="@android:drawable/ic_menu_close_clear_cancel" />

</RelativeLayout>

ibtn_Hidden = (ImageButton) view.findViewById(R.id.ibtnHidden);
ibtn_Play = (ImageButton) view.findViewById(R.id.ibtnPlay);
ibtn_Preference = (ImageButton) view.findViewById(R.id.ibtnPreference);
ibtn_Exit = (ImageButton) view.findViewById(R.id.ibtnExit);

ibtn_Hidden=(ImageButton)view.findViewById(R.id.ibtnHidden);
ibtn_Play=(ImageButton)view.findviewbyd(R.id.ibtnPlay);
ibtn_Preference=(ImageButton)view.findViewById(R.id.ibtnPreference);
ibtn_Exit=(ImageButton)view.findViewById(R.id.ibtnExit);
当我调用“ibtn_Play.setVisible(View.go);ibtn_Preference.setVisible(View.go);ibtn_Exit.setVisible(View.go)”时,ibtn_Hidden的位置会改变

我猜这是因为其他视图已被临时删除,视图的大小也发生了变化,并且正处于变化的中间


如何在调用setVisible(View.GONE)后保持ibtn_隐藏的位置不变,其他[ibtn_Play ibtn_Preference ibtn_Exit]不应占用空间?谢谢~

如果您希望视图不可见,但仍保持其布局影响,可以使用以下方法:

imageButton2.setVisibility(View.INVISIBLE);

希望这有帮助:)

尝试此属性setVisibility(View.INVISIBLE);代替设置可见性(视图已消失);发布整个布局代码。尝试将视图包装为线性布局。这样,当布局中的视图设置为“视图”时,布局将崩溃。已消失,但其自身的线性布局仍将保持在位。很抱歉,我忘记添加,我需要删除ImageButton2和ImageButton3,在保持相同位置的同时,ImageButton1.ImageButton2和ImageButton3不应占用空间。谢谢。这并没有回答问题,OP特别询问了如何使用View.GONE和not View.INVISIBLE。