logo
当前页

自定义底部菜单栏按钮

语聊房 UIKit(Live Audio Room Kit) 支持自定义调整菜单栏的按钮,支持删除默认按钮或添加自定义按钮。您可以删除默认按钮或添加自定义按钮。如果需要,您可以配置bottomMenuBarConfig:

  • hostButtons:使用此选项为房主(主持人)设置预制的按钮。
  • speakerButtons:使用此选项为发言人设置预制的按钮。
  • audienceButtons:使用此选项为观众设置预制的按钮。
    • menuBarButtonsMaxCount:菜单栏可以显示的按钮的最大数量,支持范围设置[1, 5],默认值是 5。
    • showInRoomMessageButton:是否显示消息按钮,默认显示。

    如果内置按钮和自定义按钮的总数不超过menuBarButtonsMaxCount个,所有按钮都将正常显示。

    若按钮数超过 5 个,超出的其他按钮将隐藏在(⋮)按钮中。单击此按钮将弹出底部面板以显示其他所有按钮。以下是实际效果和参考代码:

    Java
    Kotlin
      public class LiveAudioRoomActivity extends AppCompatActivity {
    
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_call);
    
              addFragment();
          }
    
          public void addFragment() {
              long appID = yourAppID; // 替换为您的 AppID,请从 ZEGO 控制台获取
              String appSign = yourAppSign; // 替换为您的 AppSign,请从 ZEGO 控制台获取
              String userID = yourUserID; // 替换为您的 UserID
              String userName = yourUserName; // 替换为您的 UserName
    
              boolean isHost = getIntent().getBooleanExtra("host", false);
              String roomID = getIntent().getStringExtra("roomID");
    
              ZegoUIKitPrebuiltLiveAudioRoomConfig config;
              if (isHost) {
                  config = ZegoUIKitPrebuiltLiveAudioRoomConfig.host();
              } else {
                  config = ZegoUIKitPrebuiltLiveAudioRoomConfig.audience();
              }
    
              config.bottomMenuBarConfig.hostButtons = Arrays.asList(ZegoMenuBarButtonName.TOGGLE_MICROPHONE_BUTTON, ZegoMenuBarButtonName.SHOW_MEMBER_LIST_BUTTON);
              config.bottomMenuBarConfig.speakerButtons = Arrays.asList(ZegoMenuBarButtonName.TOGGLE_MICROPHONE_BUTTON, ZegoMenuBarButtonName.SHOW_MEMBER_LIST_BUTTON);
              config.bottomMenuBarConfig.audienceButtons = Arrays.asList(ZegoMenuBarButtonName.SHOW_MEMBER_LIST_BUTTON);
    
              ZegoUIKitPrebuiltLiveAudioRoomFragment fragment = ZegoUIKitPrebuiltLiveAudioRoomFragment.newInstance(appID, appSign, userID, userName, roomID, config);
              getSupportFragmentManager().beginTransaction()
                  .replace(R.id.fragment_container, fragment)
                  .commitNow();
          }
      }
    
    1
    Copied!
      class LiveAudioRoomActivity : AppCompatActivity() {
    
          override fun onCreate(savedInstanceState: Bundle?) {
              super.onCreate(savedInstanceState)
              setContentView(R.layout.activity_live)
              addFragment()
          }
    
          private fun addFragment() {
              val appID: Long = yourAppID // 替换为您的 AppID,请从 ZEGO 控制台获取
              val appSign = yourAppSign // 替换为您的 AppSign,请从 ZEGO 控制台获取
              val userID = YourUserID // 替换为您的 UserID
              val userName = YourUserName // 替换为您的 UserName
              
              val isHost = intent.getBooleanExtra("host", false)
              val roomID = intent.getStringExtra("roomID")
    
              val config: ZegoUIKitPrebuiltLiveAudioRoomConfig = if (isHost) {
                  ZegoUIKitPrebuiltLiveAudioRoomConfig.host()
              } else {
                  ZegoUIKitPrebuiltLiveAudioRoomConfig.audience()
              }
    
              config.bottomMenuBarConfig.hostButtons = Arrays.asList(ZegoMenuBarButtonName.TOGGLE_MICROPHONE_BUTTON, ZegoMenuBarButtonName.SHOW_MEMBER_LIST_BUTTON)
              config.bottomMenuBarConfig.speakerButtons = Arrays.asList(ZegoMenuBarButtonName.TOGGLE_MICROPHONE_BUTTON, ZegoMenuBarButtonName.SHOW_MEMBER_LIST_BUTTON)
              config.bottomMenuBarConfig.audienceButtons = Arrays.asList(ZegoMenuBarButtonName.SHOW_MEMBER_LIST_BUTTON)
    
              val fragment = ZegoUIKitPrebuiltLiveAudioRoomFragment.newInstance(appID, appSign, userID, userName, roomID, config)
              supportFragmentManager.beginTransaction()
                  .replace(R.id.fragment_container, fragment)
                  .commitNow()
          }
      }
    
    1
    Copied!

    此外,您也可以通过以下方法,实现相同的效果:addButtonToMenuBarclearBottomBarExtendButtons

    Java
    Kotlin
    class ZegoUIKitPrebuiltLiveAudioRoomFragment{
        //...
        void addButtonToMenuBar(List<View> widgets, ZegoLiveAudioRoomRole role);
        void clearBottomBarExtendButtons(ZegoLiveAudioRoomRole role);
        //...
    }
    
    1
    Copied!
    class ZegoUIKitPrebuiltLiveAudioRoomFragment{
        //...
        fun addButtonToMenuBar(widgets: List<View>?, role: ZegoLiveAudioRoomRole?)
        fun clearBottomBarExtendButtons(role: ZegoLiveAudioRoomRole?)
        //...
    }
    
    1
    Copied!

    Previous

    自定义 UI 文案

    Next

    自定义文本消息的 UI

    当前页

    返回到顶部