1

2 つのカスタム ビューを組み合わせて動作させるには、本当に厄介な問題があります。これらの2つのビューをAndroidアクティビティに表示しようとしていますが、そのうちの1つはアクティビティの表示可能なスペース全体を占め、もう1つはその下に配置されています。最初のビューはスペースのごく一部しか使用せず、残りは透明ですが、幅と高さが である場合にのみ機能するmatch_parentため、他のビューはその下に表示されますが、タッチ イベントの受信はブロックされています。ここにそれらがどのように見えるかがあります:

1

2

xml コード:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_app" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <com.fortysevendeg.android.swipelistview.SwipeListView
        xmlns:swipe="http://schemas.android.com/apk/res-auto"
        android:id="@+id/example_lv_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:listSelector="#00000000"
        swipe:swipeActionLeft="dismiss"
        swipe:swipeBackView="@+id/back"
        swipe:swipeCloseAllItemsWhenMoveList="true"
        swipe:swipeFrontView="@+id/front"
        swipe:swipeMode="both" 
        android:focusableInTouchMode="true"/>
</LinearLayout>

<com.touchmenotapps.widget.radialmenu.semicircularmenu.SemiCircularRadialMenu
        android:id="@+id/radial_menu"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="bottom"
        android:padding="1dip" />
</FrameLayout>

私がやろうとしているのは、トップビューが透明なボトムに触れ、透明でないトップビューに触れることができるようにすることです。xml を別の方法で配置しようとしましたが、クラッシュし続けます。これが機能する唯一の方法ですが、この問題が発生しました。

カスタム ビューへのリンク:

  • ラジアル メニュー ウィジェット: github.com/strider2023/Radial-Menu-Widget-Android
  • SwipeListView ライブラリ: github.com/47deg/android-swipelistview
  • SwipeListView サンプル: github.com/47deg/android-swipelistview-sample

ここで達成しようとしているのは、Catch Notesアプリに似たものです。他の方法、または提案できる他のライブラリがあれば、大歓迎です。

4

2 に答える 2

1

これを試してください:SemiCircularRadialMenu.classプロジェクトのソースコードをコピーして変更します

public boolean onTouchEvent(MotionEvent event) 

このメソッドは常に true を返し、すべてのタッチ イベントをキャプチャするため、SwipeListViewリスナーのタッチ イベントも同様です。私はこの方法で解決しました。

于 2013-06-10T12:44:20.377 に答える