Skip to content

根据点击位置自动调整箭头方向的悬浮菜单

Notifications You must be signed in to change notification settings

aishang5wpj/SmartMenu

Repository files navigation

SmartMenu

一款可以根据按钮位置来自动调整自己位置的菜单悬浮窗。

使用方式


public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private SmartMenu mSmartMenu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.left_top_btn).setOnClickListener(this);
        findViewById(R.id.center_top_btn).setOnClickListener(this);
        findViewById(R.id.right_top_btn).setOnClickListener(this);
        findViewById(R.id.left_center_btn).setOnClickListener(this);
        findViewById(R.id.center_btn).setOnClickListener(this);
        findViewById(R.id.right_center_btn).setOnClickListener(this);
        findViewById(R.id.left_bottom_btn).setOnClickListener(this);
        findViewById(R.id.center_bottom_btn).setOnClickListener(this);
        findViewById(R.id.right_bottom_btn).setOnClickListener(this);

        mSmartMenu = new SmartMenu.Builder(this)
                .setView(R.layout.smart_list)
                .build();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mSmartMenu.destory();
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
//        mSmartMenu.dismiss();
//        mSmartMenu.show((int) ev.getRawX(), (int) ev.getRawY());
        return super.dispatchTouchEvent(ev);
    }

    @Override
    public void onClick(View v) {
        if (mSmartMenu.isShowing()) {
            mSmartMenu.dismiss();
        } else {
            mSmartMenu.show(v);
        }
    }
}

About

根据点击位置自动调整箭头方向的悬浮菜单

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages