2013-03-20 5 views
0

У меня есть макет, как:ViewPager принимает onClick события от родителя?

<LinearLayout id="@+id/parent" clickable="true"> 
    <ViewPager /> 
</LinearLayout> 

и щелчок слушатель на родителе. Но это не ответ на события кликов. Кажется, что viewpager принимает их. Есть ли способ, чтобы родительский элемент обрабатывал события кликов?

Благодаря

+0

'LinearLayout' не интерактивный по умолчанию. Попробуйте добавить 'android: clickable = true' –

ответ

0
final View myview2; 
View view=(View) myViewPager.findViewById(position); 
myview2 = (View) ((ViewGroup) view).getParent(); 


if (myview2 instanceof LinearLayout) { 
Log.d("instanceof", "linearLayout"); 
} 

использование, что если вы получаете вид, как InstanceOf LinearLayout добавить clicklistener там myview2

смотрите здесь больше о getParent();

http://developer.android.com/reference/android/view/ViewParent.html#getParent()

Если LinearLayout является rootview вы можете использовать:

View view=findViewById(R.id.main); 
View v1 = view.getRootView(); 

Если вы conserned о Views внутри ViewPager, то вы можете изменить getParent() к getChildAt(0).

и вы также можете использовать:

myLinearLayout.bringToFront();

+0

Здравствуйте, извините, что я не следую - я хочу добавить слушателя кликов в макет с id =" parent ". Мне непонятно, какое из перечисленных выше нужно использовать для этого? – user291701

+0

попробуйте использовать 'yourlinearlayout.bringToFront();' и затем прослушиватель кликов должен работать – Zombie

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