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