我想实现一个有两层的UI。 底层有一个背景图像和两个按钮,而顶层是一个ViewPager有一些用于滑动的文本。你可以参考LinkedIn的启动画面。 如下图所示:
目前,当ViewPager(顶部)中的文本滑动时,背景图像(底部)会发生变化,这样可以正常工作。但目前的问题是:两个按钮(底部)无法获得点击事件,因为它位于ViewPager后面。我没有把按钮放到顶层,因为我想在寻呼机刷卡时保持按钮静止。有没有人知道让底层视图获得点击事件的方法?
主要布局如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/col_7"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/slide_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:background="@drawable/slide1"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:id="@+id/slide_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
>
<Button
android:id="@+id/slide_login"
android:layout_width="150dp"
android:layout_height="49dp"
android:layout_marginLeft="20dp"
android:background="@drawable/login_white_button"
android:text="@string/login"
android:textSize="18sp"
android:textColor="@color/col_11"
android:layout_gravity="left"
android:layout_marginBottom="20dp"
android:onClick="gotoSignin"
/>
<Button
android:id="@+id/signup_btn"
android:layout_width="150dp"
android:layout_height="49dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@drawable/signup_button_bg"
android:text="@string/signup"
android:textSize="18sp"
android:textColor="@color/login_red_button_text"
android:layout_marginBottom="20dp"
android:onClick="gotoSignup"
android:visibility="visible"
/>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
EDIT1: 我将外部容器更改为FrameLayout并更改ViewPager的布局参数,看起来更好。如果我将ViewPager的高度设置为某个值,例如&#34; 350dp&#34;,则按钮响应我的点击,但当高度为&#34; wrap_content&#34;时,它仍然无法响应。
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
/>
答案 0 :(得分:0)
尝试使用LinearLayout并将weight属性设置为Viewpager,同时删除不必要的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/col_7"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<LinearLayout
android:id="@+id/slide_background"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/slide1"
android:padding="5dp">
<Button
android:id="@+id/slide_login"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:background="@drawable/login_white_button"
android:text="@string/login"
android:textSize="18sp"
android:textColor="@color/eb_col_11"/>
<Button
android:id="@+id/signup_btn"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:background="@drawable/signup_button_bg"
android:text="@string/signup"
android:layout_marginLeft="5dp"
android:textSize="18sp"
android:textColor="@color/login_red_button_text"
android:onClick="gotoSignup"/>
</LinearLayout>
</LinearLayout>