<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          RapidFloatingActionButton安卓前端組件

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

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

          使用方式:

          依賴:
          AndroidBucket:基礎工具包
          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: 展開RFAB時候最外覆蓋層的顏色,默認是純白色
            rfal_frame_alpha: 展開RFAB時候最外覆蓋層的透明度(0 ~ 1),默認是0.7

          RapidFloatingActionButton:

          rfab_size: RFAB的尺寸大小,只支持兩種尺寸(Material Design規(guī)范):
                    normal: 直徑56dp
                    mini: 直徑40dp
            rfab_drawable: RFAB中間的圖標,默認是一個"+"圖標
            rfab_color_normal: RFAB背景的普通狀態(tài)下的顏色。默認是白色
            rfab_color_pressed: RFAB背景的觸摸按下狀態(tài)的顏色。默認顏色是"#dddddd"
            rfab_shadow_radius: RFAB的陰影半徑。默認是0,表示沒有陰影
            rfab_shadow_color: RFAB的陰影顏色。默認是透明,另外如果rfab_shadow_radius為0,則該屬性無效
            rfab_shadow_dx: RFAB的陰影X軸偏移量。默認是0
            rfab_shadow_dy: RFAB的陰影Y軸偏移量。默認是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中設置的RapidFloatingActionLayout和RapidFloatingActionButton之外,還需要RapidFloatingActionContent的實現(xiàn)類來填充和指定RFAB的內(nèi)容和形式。
          這里提供了一個快速的RapidFloatingActionContent的實現(xiàn)解決方案:RapidFloatingActionContentLabelList。你可以加入多個item(RFACLabelItem,當然,不建議加太多的item,導致超過一個屏幕),然后設置每個item的顏色、圖標、陰影甚至動畫。
          它的效果可參考最上面的效果圖片或者Google的Inbox的效果。
          除此之外,你還需要使用RapidFloatingActionButtonHelper來把以上所有零散的組件組合起來。

          關(guān)于擴展:

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

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

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

          瀏覽 25
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩午夜福利在线观看 | 草久97在线视频免费观 | 欧美日韩色视 | 黄色日本国产 | 精品久久伊人 |