Wie setzen OnClickListener für ScrollView?
entwickle ich ein android-Projekt, welches es einem viewpager. ich schrieb einen adapter für mein viewpager und mein adapter besteht aus s scrollview und einige Ansichten im inneren, dass.
ich will, wenn Benutzer klicken Sie auf den scrollview, etwas passieren (ich habe dieses Teil auch und testen Sie es, und es funktioniert).
ich implementiert onClickListener für meine scrollview aber es wird nicht ausgelöst, wenn Benutzer klicken Sie auf, dass.
habe ich schon gelesen diese aber es ist nicht für mich arbeiten.
mein code für onClickListener ist hier
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!!!");
}
});
und mein layout code ist:
<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>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Kind
Views
IhrerScrollView
verbrauchen klicken Sie auf Ereignisse, die Sie auf derScrollView
.Die Lösung für dieses problem ist die Einstellung der
onClickLIstener
zu den unmittelbaren Kind derScrollView
, dieFrameLayout
in Ihrem Fall.Vergessen Sie nicht das layout "anklickbar".
Des weiteren empfehle ich nicht zu verwenden, die
FrameLayout
an alle, da ist es nur ein nutzlos-container. Stattdessen lassen Sie denLinearLayout
ist derzeit das Kind von derFrameLayout
werden das nächste Kind an derScrollView
.versuchen: