组合可点击的视图和NestedScrollView - > onClick在第二次触摸时触发

时间:2015-07-31 21:25:52

标签: onclick scrollview

我正在尝试在NestedScrollView中放置一些可点击的CardViews(使用Material lib 22.2.1)。

我的大多数代码似乎都没有任何问题(工具栏崩溃,GUI显示正确,等等)。但是当布局滚动时(又名:工具栏被折叠),我必须触摸1x一个可点击的视图,以“重新启用”布局的可点击行为。也许我不清楚我的意思,所以这里有一个场景:

  1. app启动
  2. 片段已加载
  3. 点击卡片 - > onClick被触发 - >工作正常
  4. 向下滚动(工具栏现在折叠) - >工作正常
  5. 点击卡片 - > onClick不再被触发: - /
  6. 现在布局再次正常工作 - 直到布局再次滚动
  7. 如果有人知道造成这个的原因,请告诉我。

    这是一些代码(某些部分来自Chris Banes的教程)

    <?xml version="1.0" encoding="utf-8"?>
    
    <manifest>
    
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
        <permission />
        <permission-tree />
        <permission-group />
        <instrumentation />
        <uses-sdk />
        <uses-configuration />  
        <uses-feature />  
        <supports-screens />  
        <compatible-screens />  
        <supports-gl-texture />  
    
        <application>
    
            <activity>
                <intent-filter>
                    <action />
                    <category />
                    <data />
                </intent-filter>
                <meta-data />
            </activity>
    
            <activity-alias>
                <intent-filter> . . . </intent-filter>
                <meta-data />
            </activity-alias>
    
            <service>
                <intent-filter> . . . </intent-filter>
                <meta-data/>
            </service>
    
            <receiver>
                <intent-filter> . . . </intent-filter>
                <meta-data />
            </receiver>
    
            <provider>
                <grant-uri-permission />
                <meta-data />
                <path-permission />
            </provider>
    
            <uses-library />
    
        </application>
    
    </manifest>
    

    片段内容

     <android.support.design.widget.CoordinatorLayout
                android:id="@+id/rootLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
    
            <android.support.design.widget.AppBarLayout
                    android:id="@+id/appbar"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/app_bar_height">
    
                <android.support.design.widget.CollapsingToolbarLayout
                        android:id="@+id/collapsingToolbarLayout"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        app:contentScrim="?attr/colorPrimary"
                        app:expandedTitleMarginStart="@dimen/expanded_toolbar_title_margin_start"
                        app:layout_scrollFlags="scroll|exitUntilCollapsed"
                        app:layout_behavior="@string/appbar_scrolling_view_behavior">
    
                    <ImageView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:scaleType="centerCrop"
                            android:src="@color/purple_5"
                            app:layout_collapseMode="parallax"
                            app:layout_collapseParallaxMultiplier="0.7"/>
    
                    <android.support.v7.widget.Toolbar
                            android:id="@+id/toolbar"
                            android:layout_width="match_parent"
                            android:layout_height="?attr/actionBarSize"
                            app:layout_collapseMode="pin"/>
    
                </android.support.design.widget.CollapsingToolbarLayout>
    
            </android.support.design.widget.AppBarLayout>
    
            <android.support.v4.widget.NestedScrollView
                    android:id="@+id/frame"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior"
                    xmlns:app="http://schemas.android.com/apk/res-auto"
                    xmlns:android="http://schemas.android.com/apk/res/android"/>
    
            <android.support.design.widget.FloatingActionButton
                    android:id="@+id/fab"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="@dimen/fab_margin"
                    android:clickable="true"
                    android:src="@drawable/ic_launcher"
                    app:layout_anchor="@+id/appbar"
                    app:layout_anchorGravity="bottom|right|end"
                    />
    
        </android.support.design.widget.CoordinatorLayout>
    

    设置片段('内容'):

    <?xml version="1.0" encoding="utf-8"?>
    
    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:paddingTop="24dp"
            xmlns:android="http://schemas.android.com/apk/res/android">
    
        <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="@dimen/card_margin"
                android:clickable="true">
    
            <LinearLayout
                    style="@style/Widget.CardContent"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:clickable="false">
    
                <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Info"
                        android:textAppearance="@style/TextAppearance.AppCompat.Title"/>
    
                <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/cheese_ipsum"/>
    
            </LinearLayout>
    
        </android.support.v7.widget.CardView>
    
        <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="@dimen/card_margin"
                android:layout_marginLeft="@dimen/card_margin"
                android:layout_marginRight="@dimen/card_margin"
                android:clickable="true">
    
            <LinearLayout
                    style="@style/Widget.CardContent"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:clickable="true">
    
                <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Friends"
                        android:textAppearance="@style/TextAppearance.AppCompat.Title"/>
    
                <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/cheese_ipsum"/>
    
            </LinearLayout>
    
        </android.support.v7.widget.CardView>
    
        <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="@dimen/card_margin"
                android:layout_marginLeft="@dimen/card_margin"
                android:layout_marginRight="@dimen/card_margin"
                android:clickable="true"
                android:foreground="@drawable/card_foreground"
                android:id="@+id/testCard">
    
            <LinearLayout
                    style="@style/Widget.CardContent"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">
    
                <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Related"
                        android:textAppearance="@style/TextAppearance.AppCompat.Title"/>
    
                <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/cheese_ipsum"/>
    
            </LinearLayout>
    
        </android.support.v7.widget.CardView>
    
        <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="1000dp"/>
    
    
    </LinearLayout>
    

    提前致谢。

0 个答案:

没有答案