str*_*s95 6 java android android-fragments android-scrollview onclicklistener
我正在开发一个拥有viewpager的android项目.我为我的viewpager写了一个适配器,我的适配器由s scrollview和里面的一些视图组成.
我想当用户点击滚动视图时,会发生一些事情(我也写了这部分并测试它并且它有效).
我为我的scrollview实现了onClickListener,但是当用户点击它时它不会被触发.
我已经读过这个,但这对我不起作用.
我的onClickListener代码就在这里
rootView = inflater.inflate(R.layout.level_selector_list_view_adapter, container, false);
ScrollView scroll = (ScrollView) rootView.findViewById(R.id.level_selector_view_scroll_view);
scroll.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
Log.e(MainActivity.WATERMELON_TAG, "Click!!!");
}
});
Run Code Online (Sandbox Code Playgroud)
我的布局代码是这样的:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="@dimen/level_selector_values_main_page_view_pager_width"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ScrollView
android:id="@+id/level_selector_view_scroll_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
tools:ignore="UselessParent" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
tools:ignore="UselessParent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:clickable="false"
android:orientation="vertical" >
<ImageView
android:id="@+id/level_selector_view_pager_adapter_level_logo"
android:layout_width="@dimen/level_selector_values_view_pager_adapter_level_logo_width"
android:layout_height="@dimen/level_selector_values_view_pager_adapter_level_logo_height"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/level_selector_values_view_pager_adapter_level_logo_top_margin"
android:clickable="false"
android:scaleType="fitXY"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/level_selector_view_pager_adapter_level_name"
android:layout_width="@dimen/level_selector_values_view_pager_adapter_level_name_width"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/level_selector_values_view_pager_adapter_level_name_top_margin"
android:clickable="false"
android:gravity="center"
android:textColor="@color/level_selector_values_level_name_font_color"
android:textSize="@dimen/level_selector_values_level_name_font_size" />
<TextView
android:id="@+id/level_selector_view_pager_adapter_level_score"
android:layout_width="@dimen/level_selector_values_view_pager_adapter_level_score_width"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/level_selector_values_view_pager_adapter_level_score_top_margin"
android:clickable="false"
android:gravity="center"
android:textColor="@color/level_selector_values_level_name_font_color"
android:textSize="@dimen/level_selector_values_font_size" />
</LinearLayout>
<ImageView
android:id="@+id/level_selector_view_pager_adapter_lock"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:alpha="0.75"
android:clickable="false"
android:scaleType="fitXY"
android:src="@drawable/lock"
tools:ignore="ContentDescription" />
</FrameLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
Phi*_*oda 10
Views
你的孩子ScrollView
正在消费你在上面做的点击事件ScrollView
.
这个问题的解决方法是设置onClickLIstener
为直接的孩子ScrollView
,在FrameLayout
你的情况.
不要忘记将布局设置为"可点击".
此外,我建议不要使用FrameLayout
它,因为它只是一个无用的容器.相反,只要让LinearLayout
那个人FrameLayout
成为下一个孩子的孩子ScrollView
.
归档时间: |
|
查看次数: |
5485 次 |
最近记录: |