フラグメントを開いてアイコンを並べる。フリー素材に適当なものがないので自前で用意する。デザインは真似ているのにプログラム以上に時間がかかる。
とりあえず、開く部分と閉じる部分。
【mainActivity.java】
private boolean doubleTapFlag = false;
private boolean fragmentFlag = false;
class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
if (!doubleTapFlag && !fragmentFlag ) {
if ( nextTargetIndexNo( e ) ) {
setNextImage();
mViewSwitcher.showNext();
} else {
setNextImage();
mViewSwitcher.showPrevious();
}
}
doubleTapFlag = false;
// 付け焼き刃、フラグメントが閉じたら、シングルタップの処理をさせる
List<Fragment> list = getSupportFragmentManager().getFragments();
if ( list.isEmpty() ) {
fragmentFlag = false;
}
return false;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
doubleTapFlag = true;
fragmentFlag = true;
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace( R.id.insert_layout ,new FirstFragment() ); // フラグメントをセット
ft.addToBackStack("first");
ft.commit(); // 実行
return true;
}
}
【FirstFragment.java】
省略
public void finish() {
FragmentManager fm = getFragmentManager();
assert fm != null;
FragmentTransaction ft = fm.beginTransaction();
ft.remove(FirstFragment.this).commit();
}
任意の場所のクリックに finish(); をセットする。
意外と並べたときにバランスが悪い。また、透過部分を作る時、Windows10のペイントは使いづらい。