問題を理解するには、次の画像をご覧ください。
ご覧のとおりRelativeLayout
、カスタムを保持するView
と がありLinearLayout
ます。
それらの間に、 に設定された別View
のもあります。ここで、 を押すと、そのビューの可視性を に変更し、 を再配置して、3 番目のビューがカスタムとの間になるようにします。別のボタンを押すと、3 番目のビューをもう一度 GONE にしたいと思います。どうすればそれを達成できますか?Visibility
GONE
Button
GONE
VISIBLE
RelativeLayout
View
View
LinearLayout
ここに私のXMLがあります:
<view
android:id="@+id/CanvasView"
android:layout_width="200dp"
android:layout_height="40dp"
android:layout_above="@+id/HorizontalScrollView"
android:layout_centerHorizontal="true"
android:layout_margin="0dp"
android:layout_marginBottom="0dp"
android:layout_marginTop="0dp"
class="com.example.CanvasView"
android:orientation="vertical" />
<HorizontalScrollView
android:id="@+id/HorizontalScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/linearLayout2"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:visibility="gone" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:orientation="horizontal" >
//SOME BUTTONS HERE
</LinearLayout>
</HorizontalScrollView>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginTop="5dp" >
<Button
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_weight="0.4"
android:maxWidth="200dp"
android:text="Clear"
android:textColor="@android:color/white"
android:textSize="20sp" />
<Button
android:id="@+id/settingsButton"
android:layout_width="44dp"
android:layout_height="44dp"
android:layout_gravity="center_vertical|center_horizontal"
android:background="@drawable/settings_button_selector" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_weight="0.4"
android:enabled="false"
android:maxWidth="200dp"
android:text="Recognize"
android:textColor="@android:color/white"
android:textSize="20sp" />
</LinearLayout>
OnClick() メソッドで 3 番目のビューの setVisibility のみを設定すると、LinearLayout の上に表示され、カスタム ビューにオーバーレイされます (以前に試しました)。つまり、RelativeLayout を上に移動しません。