0

グラフ(ノードとエッジ)を作成するアプリを作っているのですが、ノードを作成するタッチメソッドを実装したかったのですが、キャンバスをタッチしてノードを追加するとうまくいかず困っていますが、活動作品の一番下のメニューをクリックすると

View.OnTouchListener を実装しようとしましたが、これは、グラフを表示するフラグメントにある FrameLayout のタッチを認識しません。

私の活動:

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<FrameLayout
  android:id="@+id/layoutFragment"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_above="@+id/bottomNavView"
  android:layout_alignParentStart="true"
  android:layout_alignParentTop="true"
  android:layout_alignParentEnd="true">

<fragment
  android:id="@+id/fragment_tag"    
  android:name="org.graphstream.ui.android_viewer.util.DefaultFragment"
  android:layout_width="match_parent"
  android:layout_height="match_parent" />

</FrameLayout>

<include
   android:id="@+id/bottomNavView"
   layout="@layout/bottom_nav_view" />
</RelativeLayout>

これは私のJavaです(画面に触れてトーストを表示しようとしていました):

    public class FragmentGrafo extends Fragment{

    @Override
     public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup 
    container, Bundle savedInstanceState) {
        final View view = inflater.inflate(R.layout.grafo_fragment, 
    container, false);

        view.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                 if (event.getAction() == MotionEvent.ACTION_DOWN){
                    Toast.makeText(getActivity(), "Não pode mais add 
     nós", 
     Toast.LENGTH_SHORT).show();
                }
                return true;
            }
        });

        return view;
    }

画面に触れてノードを追加するか、いいえをクリックして削除し、ノード 1 を選択してからノード 2 を選択し、エッジを作成できることを願っています

4

0 に答える 0