我有以下xml文件:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/FrameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/musicLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="center"
android:orientation="horizontal"
android:padding="10dp"
android:focusable="true"
android:visibility="visible" >
<ImageView
android:id="@+id/backward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/backward" />
<ImageView
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:src="@drawable/stop" />
<ImageView
android:id="@+id/pausePlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:src="@drawable/play" />
<ImageView
android:id="@+id/forward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingRight="10dp"
android:src="@drawable/forward" />
</LinearLayout>
framelayout用于带有标签的操作栏,这些标签是上述布局中的viewpager。动作栏完美无缺。我想要解决的问题是当我在线性布局外面按下时,需要隐藏最后一个线性布局,它实际上是一个漂浮在屏幕底部的媒体播放器!我测试了musicLayout中的onfocuschangelistener和网页浏览器中的onclick,但没有任何反应!我究竟做错了什么?
编辑:
如果有帮助,每个选项卡都是一个具有自己布局的片段,并添加到viewPager。
答案 0 :(得分:2)
我认为解决此问题的最简单方法是添加一个与ViewGroup的父视图匹配的透明视图。基本上,您可以将ViewPager,LinearLayout和View放在同一级别。然后,您可以在透明视图上注册onClickListener,这应该可以解决问题。
布局应该像这样简单:
<View android:id="@+id/transparent_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"/>