1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        RapidFloatingActionButton安卓前端組件

        聯(lián)合創(chuàng)作 · 2023-09-24 10:07

        RapidFloatingActionButton 是 Floating Action Button 的快速實(shí)現(xiàn),RapidFloatingActionButton(以下簡(jiǎn)稱RFAB)
          

        使用方式:

        依賴:
        AndroidBucket:基礎(chǔ)工具包
        AndroidInject:注解框架

        activity_main.xml:

        <com.wangjie.rapidfloatingactionbutton.RapidFloatingActionLayout
              xmlns:rfal="http://schemas.android.com/apk/res-auto"
              android:id="@+id/activity_main_rfal"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              rfal:rfal_frame_color="#ffffff"
              rfal:rfal_frame_alpha="0.7"
              >
          <com.wangjie.rapidfloatingactionbutton.RapidFloatingActionButton
                  xmlns:rfab="http://schemas.android.com/apk/res-auto"
                  android:id="@+id/activity_main_rfab"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_alignParentRight="true"
                  android:layout_alignParentBottom="true"
                  android:layout_marginRight="15dp"
                  android:layout_marginBottom="15dp"
                  android:padding="8dp"
                  rfab:rfab_size="normal"
                  rfab:rfab_drawable="@drawable/rfab__drawable_rfab_default"
                  rfab:rfab_color_normal="#37474f"
                  rfab:rfab_color_pressed="#263238"
                  rfab:rfab_shadow_radius="7dp"
                  rfab:rfab_shadow_color="#999999"
                  rfab:rfab_shadow_dx="0dp"
                  rfab:rfab_shadow_dy="5dp"
                  />
        </com.wangjie.rapidfloatingactionbutton.RapidFloatingActionLayout>

        在需要增加RFAB最外層使用<com.wangjie.rapidfloatingactionbutton.RapidFloatingActionLayout>,按鈕使用<com.wangjie.rapidfloatingactionbutton.RapidFloatingActionButton>

        屬性解釋

        RapidFloatingActionLayout:

        rfal_frame_color: 展開(kāi)RFAB時(shí)候最外覆蓋層的顏色,默認(rèn)是純白色
          rfal_frame_alpha: 展開(kāi)RFAB時(shí)候最外覆蓋層的透明度(0 ~ 1),默認(rèn)是0.7

        RapidFloatingActionButton:

        rfab_size: RFAB的尺寸大小,只支持兩種尺寸(Material Design規(guī)范):
                  normal: 直徑56dp
                  mini: 直徑40dp
          rfab_drawable: RFAB中間的圖標(biāo),默認(rèn)是一個(gè)"+"圖標(biāo)
          rfab_color_normal: RFAB背景的普通狀態(tài)下的顏色。默認(rèn)是白色
          rfab_color_pressed: RFAB背景的觸摸按下?tīng)顟B(tài)的顏色。默認(rèn)顏色是"#dddddd"
          rfab_shadow_radius: RFAB的陰影半徑。默認(rèn)是0,表示沒(méi)有陰影
          rfab_shadow_color: RFAB的陰影顏色。默認(rèn)是透明,另外如果rfab_shadow_radius為0,則該屬性無(wú)效
          rfab_shadow_dx: RFAB的陰影X軸偏移量。默認(rèn)是0
          rfab_shadow_dy: RFAB的陰影Y軸偏移量。默認(rèn)是0

        MainActivity:

        @AILayout(R.layout.activity_main)
        public class MainActivity extends AIActionBarActivity implements RapidFloatingActionContentLabelList.OnRapidFloatingActionContentListener {
        
            @AIView(R.id.activity_main_rfal)
            private RapidFloatingActionLayout rfaLayout;
            @AIView(R.id.activity_main_rfab)
            private RapidFloatingActionButton rfaBtn;
            private RapidFloatingActionButtonHelper rfabHelper;
        
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
        
                RapidFloatingActionContentLabelList rfaContent = new RapidFloatingActionContentLabelList(context);
                rfaContent.setOnRapidFloatingActionContentListener(this);
                List<RFACLabelItem> items = new ArrayList<>();
                items.add(new RFACLabelItem<Integer>()
                                .setLabel("Github: wangjiegulu")
                                .setResId(R.drawable.ic_launcher)
                                .setIconNormalColor(0xffd84315)
                                .setIconPressedColor(0xffbf360c)
                                .setWrapper(0)
                );
                items.add(new RFACLabelItem<Integer>()
                                .setLabel("[email protected]")
                                .setResId(R.drawable.ic_launcher)
                                .setIconNormalColor(0xff4e342e)
                                .setIconPressedColor(0xff3e2723)
                                .setWrapper(1)
                );
                items.add(new RFACLabelItem<Integer>()
                                .setLabel("WangJie")
                                .setResId(R.drawable.ic_launcher)
                                .setIconNormalColor(0xff056f00)
                                .setIconPressedColor(0xff0d5302)
                                .setWrapper(2)
                );
                items.add(new RFACLabelItem<Integer>()
                                .setLabel("Compose")
                                .setResId(R.drawable.ic_launcher)
                                .setIconNormalColor(0xff283593)
                                .setIconPressedColor(0xff1a237e)
                                .setWrapper(3)
                );
                rfaContent
                        .setItems(items)
                        .setIconShadowRadius(ABTextUtil.dip2px(context, 5))
                        .setIconShadowColor(0xff999999)
                        .setIconShadowDy(ABTextUtil.dip2px(context, 5))
                ;
        
                rfabHelper = new RapidFloatingActionButtonHelper(
                        context,
                        rfaLayout,
                        rfaBtn,
                        rfaContent
                ).build();
        
            }
        
            @Override
            public void onRFACItemLabelClick(int position, RFACLabelItem item) {
                Toast.makeText(getContext(), "clicked label: " + position, Toast.LENGTH_SHORT).show();
                rfabHelper.toggleContent();
            }
        
            @Override
            public void onRFACItemIconClick(int position, RFACLabelItem item) {
                Toast.makeText(getContext(), "clicked icon: " + position, Toast.LENGTH_SHORT).show();
                rfabHelper.toggleContent();
            }
        }

        除了xml中設(shè)置的RapidFloatingActionLayout和RapidFloatingActionButton之外,還需要RapidFloatingActionContent的實(shí)現(xiàn)類來(lái)填充和指定RFAB的內(nèi)容和形式。
        這里提供了一個(gè)快速的RapidFloatingActionContent的實(shí)現(xiàn)解決方案:RapidFloatingActionContentLabelList。你可以加入多個(gè)item(RFACLabelItem,當(dāng)然,不建議加太多的item,導(dǎo)致超過(guò)一個(gè)屏幕),然后設(shè)置每個(gè)item的顏色、圖標(biāo)、陰影甚至動(dòng)畫。
        它的效果可參考最上面的效果圖片或者Google的Inbox的效果。
        除此之外,你還需要使用RapidFloatingActionButtonHelper來(lái)把以上所有零散的組件組合起來(lái)。

        關(guān)于擴(kuò)展:

        如果你不喜歡默認(rèn)提供的RapidFloatingActionContentLabelList,理論上你可以擴(kuò)展自己的內(nèi)容樣式。方法是繼承com.wangjie.rapidfloatingactionbutton.RapidFloatingActionContent,然后初始化內(nèi)容布局和樣式,并調(diào)用父類的setRootView(xxx);方法即可。如果你需要增加動(dòng)畫,可以重寫如下方法:

        public void onExpandAnimator(AnimatorSet animatorSet);
        public void onCollapseAnimator(AnimatorSet animatorSet);

        把需要的Animator增加到animatorSet中即可
        另外,作者也會(huì)不定期增加更多的RapidFloatingActionContent的擴(kuò)展

        瀏覽 25
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人开心激情 | 97久久精品人人澡人人爽古装 | 国产ts人妖高潮嗷嗷叫 | 淫荡久久 | 日韩中文字幕在线播放 | 国产2页 91中文字幕在线观看 | 免费操屄在线视频 | 北条麻妃最爽的一次 | 鲁鲁日韩成人免费视频 | 军人野外岔开腿呻吟bl |