Как удалить местоположение клика после TranslateAnimation? - PullRequest
0 голосов
/ 21 июня 2011

У меня полноэкранный RelativeLayout, который содержит следующее: 1. FrameLayout, полный экран, отображение контента. 2. LinearLayout, выступающий в качестве меню управления, оставаясь поверх содержимого # 1, должен иметь возможность скользить или исчезать по запросу (у меня фактически есть два из них. Один вверху экрана, другой на внизу).

У меня правильно отображается изображение, контроллер меню перемещается / исчезает при нажатии кнопки меню. Но когда я сдвигаю и уменьшаю изображение, действие щелчка остается. Как мне удалить это действие?

Я пытался вызвать menuLayout.setVisibility (View.GONE); но действие остается.

Я прочитал некоторые проблемы с TranslateAnimation, но не могу заставить его работать. Может кто-нибудь сказать мне, как я могу это исправить? Пример был бы оценен.

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#99000000"
    android:layout_alignParentLeft="true"
    android:gravity="center_vertical"
    android:id="@+id/contentFrame"
    >
    <ViewSwitcher 
            android:layout_width="match_parent" 
            android:layout_height="match_parent"
            android:id="@+id/viewSwitch">
        <include layout="@layout/main_car" />
    </ViewSwitcher>
</FrameLayout>
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="43dp"
    android:background="@drawable/um_top_bar"
    android:layout_alignParentTop="true"
    android:id="@+id/topMenu"
    android:gravity="top"
    >
    <ImageView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:src="@drawable/um_btn_home"
        android:id="@+id/homeMainBtn"  />
    <ImageView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:src="@drawable/exp_menu_btn"
        android:id="@+id/menuMainBtn"  />
</LinearLayout>
<LinearLayout 
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#FF000000"
    android:layout_alignParentBottom="true"
    android:id="@+id/bottomMenu"
    android:gravity="top"
    >
    <include layout="@layout/menu_bottom" />
</LinearLayout>

1 Ответ

1 голос
/ 22 июня 2011

Хорошо, я наконец-то получил его на работу. Для тех, кто может столкнуться с той же проблемой, вот что я сделал.

Я помещаю пустой слой и разделяю все содержимое меню в отдельный файл XML.

Вот код:

    /** Resetting bottom menu content */
    private void resetBottomMenu(boolean isOpen){

    bottomMenu.removeAllViews();
    bottomMenu.addView(loadBottomMenu(isOpen));
            // Control event handler goes here.
    }

    /** Load bottom menu content from XML */
    private LinearLayout loadBottomMenu(boolean isOpen){

    LinearLayout result = null;
    if(isOpen){
        result = (LinearLayout)View.inflate(this.getApplicationContext(), R.layout.menu_bottom_open, null);
    }else{
        result = (LinearLayout)View.inflate(this.getApplicationContext(), R.layout.menu_bottom, null);
    }
    return result;
    }

Каждый раз, когда я хочу вставить меню, я вызываю resetBottomMenu, затем запускаю анимацию в bottomMenu. Если я хочу закрыть меню, я запускаю анимацию, затем resetBottomMenu.

Важно удалить дочернее представление в этом макете, так как это удалит действие щелчка.

P.S. Я не уверен, что это лучший способ сделать это, но я могу подтвердить, что это работает. У меня есть три меню, которые должны быть исчезнуть / слайд, и теперь они отлично работают:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...