2014-02-05 2 views
0

У меня есть 2 действия A и B, A использует фрагмент для отображения вида списка, а B отображает содержимое, когда выбран элемент списка и закрывается список. Я могу сделать вид списка видимым и невидимым с помощью кнопки меню. Когда вид списка виден, и когда я нажимаю на фрагмент содержимого, вид списка все еще отображается. Я хочу, чтобы сделать список невидимым при нажатии в любом месте содержания (активность/фрагмент)закрыть фрагмент при нажатии другого содержимого активности

Я переключать видимость представления списка, используя приведенный ниже код при нажатии кнопки меню:

Fragment frag = getActivity().getSupportFragmentManager().findFragmentById(R.id.fragmentA); 
            frag.getView().setVisibility(8); 

Я нахожусь не знаете, где использовать этот код, когда нажата операция B.

+0

Опубликуйте больше своего кода, чтобы мы могли видеть, что происходит. Из вашего текущего вопроса неясно, должны ли эти два фрагмента занимать одно и то же пространство или нет. Если они есть, вы должны использовать транзакцию «replace». –

+0

Если вы видите сайт разработчика: http: //developer.android.com/guide/components/fragments.html. Если в приложении на планшете может быть 2 фрагмента, выберите элемент обновления фрагмента B. В моем коде есть 2 отдельных действия в двух отдельных проектах. У меня есть кнопка меню, которая может переключать видимость списка. Когда вид списка виден, и когда я касаюсь действия B, мне нужен вид списка деятельности, которая будет закрыта. –

ответ

1

Есть много способов делать то, что вы просите. Я бы посмотрел на это: Detecting Common Gestures. В принципе вы можете переопределить метод onTouchEvent() в действии или в представлении или приложить. В другом случае слишком сложно реализовать детектор жестов, который отслеживает определенные жесты, такие как нажатие или прокрутка направления.

+0

Спасибо. У меня есть вопрос. Я дал onTouch в Activity A, с делом (MotionEvent.ACTION_OUTSIDE), но я не вижу, чтобы это вызывалось. Активность A находится в отдельном проекте, чем в действии B. Активность A содержит фрагмент, который имеет расширяемый адаптер просмотра списка. Нужно ли указывать прикосновение в виде фрагмента/списка, а не в Activity? –

+0

Это сложно, не видя ваш код. Но самый простой способ использовать фрагменты, как вы, кажется, хотите. Создайте только 1 активность, затем поместите в нее 2 фрагмента. Затем присоедините GestureDetector к одному из фрагментов. –

+0

Когда я касаюсь другого содержимого фрагмента, я мог видеть следующие журналы 02-06 11: 05: 11.709: V/WebViewInputDispatcher (1969): blockWebkitDraw 02-06 11: 05: 11.709: V/WebViewInputDispatcher (1969): blockWebkitDraw lockedfalse 02-06 11: 05: 12.009: D/webview (1969): blockWebkitViewMessage = false , но мое прикосновение не вызывается. –

Смежные вопросы