gpt4 book ai didi

android - 什么是 ButtonBarLayout,我们应该如何使用它?

转载 作者:IT老高 更新时间:2023-10-28 21:34:43 29 4
gpt4 key购买 nike

我在开发的时候意外发现了一个叫android.support.v7.widget.ButtonBarLayout的新小部件。我试图在互联网上搜索它,但没有找到任何东西,即使在官方开发文档网站上也是如此。

同时,我在Android Studio中到处搜索ButtonBarLayout时发现了两个ButtonBarLayout,一个是android.support。 v7.widget.ButtonBarLayout,另一个是com.android.internal.widget.ButtonBarLayout。我试图阅读两者的源代码,我发现它们除了包名之外是相同的。所以我想也许 android.support.v7.widget.ButtonBarLayout 来自 internal ButtonBarLayout 之后的 com.android.internal.widget.ButtonBarLayout code> 已通过测试并发布。同时,ButtonBarLayout继承自LinearLayout

但是有一些问题:

  • 我们可以从 ButtonBarLayout 字面上得到什么,我们应该如何使用它?
  • 我注意到了 private boolean mAllowStacking 的变量。当它改变时,这个布局的方向也会改变。但我不太明白它的用途。

那么有人知道ButtonBarLayout吗?

P.S.:我使用 2.0.0 Preview 4Android Studio2.0.0-alpha3Gradle Plugin 23.1.1Android 支持库23.1Platform-toolsBuild- 23.0.2 的工具

最佳答案

正如其他人指出的那样,类描述准确地说明了它是什么:LinearLayout 的扩展,当它无法水平放置其 subview 时会自动切换到垂直方向。

我可以补充一点,这显然是为了适应 material design specifications关于对话框。它们区分了并排按钮和堆叠按钮。例如:

Side-by-side buttons are recommended when the text of each label does not exceed the maximum button width, such as the commonly used OK/Cancel buttons.

enter image description here

当单个按钮太大或没有足够空间放置两个按钮时,您应该选择堆叠按钮:

When text labels exceed the maximum button width, use stacked buttons to accommodate the text. Affirmative actions are stacked above dismissive actions.

enter image description here

因此,此类的一种可能用途是在设计您自己的对话框时。例如,AlertDialogAlertDialog.Builder 为带有按钮的对话框提供内部支持,但有时您只想继承 DialogFragmentAppCompatDialogFragment 以获得更好的控制。

在那里,设置一个遵循设计指南的底部按钮栏可能会很有用,并且可以完全控制按钮(例如启用和禁用,AlertDialog 无法做到的事情AFAIK)。

关于android - 什么是 ButtonBarLayout,我们应该如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34941900/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com