как открыть макет при нажатии кнопки

#android #xml

#Android #xml

Вопрос:

у меня есть два макета при запуске.1 framelayout будет виден на всем экране., в textview нажмите framelaout, который содержит список, должен быть открыт с правой стороны., я придаю макету вес, затем он открывается на весь экран. не принимая вес. я не знаю, где я ошибаюсь, пожалуйста, помогите разобраться.

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@ id/ListView_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="1" >

    <FrameLayout
        android:id="@ id/frame"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <fragment
            android:id="@ id/map"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            class="com.google.android.gms.maps.MapFragment" >
        </fragment>

        <TextView
            android:id="@ id/getdirection"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top|right"
            android:layout_marginTop="20dp"
            android:text="Get Directions"
            android:textColor="#032FFE"
            android:textSize="20sp" />
    </FrameLayout>

    <View
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        android:alpha="0" />

    <FrameLayout
        android:id="@ id/rl_ListView2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_weight="0.5"
        android:orientation="vertical" >

        <TextView
            android:id="@ id/hide"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="Hide"
            android:textColor="#032FFE"
            android:textSize="20sp" />

        <ListView
            android:id="@ id/list"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#E2E2E2" />
    </FrameLayout>

</LinearLayout>
  

Ответ №1:

Я не уверен, что полностью понимаю, что вы пытаетесь сделать. То, что я обычно делаю, когда динамически хочу отображать представления на экране, сначала отключает видимость. Затем в вашем событии onClick вы можете настроить видимость представления для просмотра.ВИДИМЫЙ и обратно для просмотра.ИСЧЕЗ, когда закончил. При использовании относительных макетов экран автоматически настраивается так, чтобы на нем отображался видимый сейчас вид (ы). Однако я не пробовал этот подход с LinearLayout. Однако таким образом вы сможете избежать использования gravity.