Pinterest app中的長按菜單效果:BubbleActions
Pinterest app中的長按菜單效果。

使用說明:
Gradle
compile 'me.samthompson:bubble-actions:1.1.0'
例子
創建 BubbleActions
BubbleActions是使用一個流式接口fluent interface (類似于SnackBar)來創建的,支持最多添加5個操作。你可以這樣創建ubbleActions :
BubbleActions.on(myView) .addAction("Star", R.drawable.bubble_star, new BubbleAction.Callback() { @Override public void doAction() { Toast.makeText(v.getContext(), "Star pressed!", Toast.LENGTH_SHORT).show(); } }) // ... add more actions ... .show();
每個BubbleActions中的action有三部分:
-
一個操作的名稱,顯示在bubble的 上面。
-
bubble的drawable。
-
一個在主線程上執行的callback,當用戶離開某個action的時候觸發。
基本的例子
在activity中我們設置了一個長按監聽者來顯示BubbleActions:
findViewById(R.id.my_view).setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(final View v) { BubbleActions.on(v) .addAction("Star", R.drawable.bubble_star, new BubbleActions.Callback() { @Override public void doAction() { Toast.makeText(v.getContext(), "Star pressed!", Toast.LENGTH_SHORT).show(); } }) .addAction("Share", R.drawable.bubble_share, new BubbleActions.Callback() { @Override public void doAction() { Toast.makeText(v.getContext(), "Share pressed!", Toast.LENGTH_SHORT).show(); } }) .addAction("Hide", R.drawable.bubble_hide, new BubbleActions.Callback() { @Override public void doAction() { Toast.makeText(v.getContext(), "Hide pressed!", Toast.LENGTH_SHORT).show(); } }) .show(); } });
Kotlin 的例子
這里是和上面相同的例子,不過是Kotlin版本:
val textView = findViewById(R.id.text_view); textView.setOnLongClickListener { BubbleActions.on(textView) .addAction("Star", R.drawable.bubble_star, { Toast.makeText(textView.context, "Star pressed!", Toast.LENGTH_SHORT).show() }) .addAction("Share", R.drawable.bubble_share, { Toast.makeText(textView.context, "Share pressed!", Toast.LENGTH_SHORT).show() }) .addAction("Hide", R.drawable.bubble_hide, { Toast.makeText(textView.context, "Hide pressed!", Toast.LENGTH_SHORT).show() }) .show() true }
改變字體
要使用自定義字體?沒問題!你可以在創建BubbleActions的時候用withTypeface配置bubble actions的typeface:
BubbleActions.on(myView).withTypeface(myFancyTypeface) // ... add actions ...
改變indicator
默認的indicator是半透明圓圈,在觸摸事件的最后一次down touch發生的時候顯示,你可以通過使用withIndicator方法來改變這個indicator:
BubbleActions.on(myView).withIndicator(R.drawable.my_fancy_indicator) // ... add actions ...
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!