5

CoordinatorLayoutの中に私はAppBarLayoutを使用しています。特定の設計要件のために、私はAppBarLayout要素の下の影を削除するように強制されました。elevationプロパティを0に設定することで完了しました。(app:elevation="0") AppBarLayout内のこの要素を実行すると、タブはタッチ/クリックイベントに応答しません。バック1DPへの昇格を設定することによりAppBarLayout(標高= 0dp)はタッチイベントに反応しません(クリック)

、要素が触れる/イベントをクリックして応答しているが、その後、私は戻って影を有することにしています...

誰でも要素が対応にする方法についての提案を持っていますAppBarLayout0dpの標高にある間にイベントをタッチ/クリックするにはどうすればよいですか?

コードエキス:

<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:layout_width="match_parent" 
      android:layout_height="@dimen/app_bar_height" 
      app:elevation="0dp"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/my_toolbar" 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent" 
       android:minHeight="?attr/actionBarSize"> 

       <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="45dp" 
        android:scaleType="fitCenter" 
        android:layout_gravity="center" 
        android:id="@+id/toolbar_logo" 
        android:maxHeight="45dp" 
        android:contentDescription="Main logo"/> 
      </android.support.v7.widget.Toolbar> 

      <android.support.design.widget.TabLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:tabIndicatorColor="@color/tab_indicator_color" 
       app:tabTextColor="@color/primary_text_grey" 
       app:tabIndicatorHeight="3dp" 
       android:id="@+id/tab_layout"> 
      </android.support.design.widget.TabLayout> 

     </android.support.design.widget.AppBarLayout>....... 

答えて

1

android:orientation="vertical"LinearLayoutCoordinatorLayout要素を置換することによって、これを解決しました。 CoordinatorLayoutを使用すると、これに間違ったアプローチをしているようです。

1

私は非常によく似た問題にぶつかっていたので、このループを閉じたいと思います。

問題はelevation = 0dpではなく、後でXMLで宣言された要素が前に宣言された要素の上にあることを意味するCoordinatorLayoutがFrameLayoutと同様に動作するという問題があります。線形レイアウトへの変更は、「重なり合う要素」をサポートしていないために機能していました。

正しい解決策は、イベントを傍受した後に宣言された要素の上にAppBarLayout(または要素が何であれ)を移動することです。エレベーション> 0の場合の理由は、タッチイベントの送出時にエレベーションが考慮されるためですが、標高が等しい場合、同じ問題が発生します。

関連する問題