gpt4 book ai didi

Android RatingBar - 一团糟

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:12:14 28 4
gpt4 key购买 nike

我知道这听起来很烦人,但有时感觉 Android 的 UI 组件和行为有些离谱。

考虑以下 XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<RatingBar
android:id="@+id/ratingBar1"
android:style="@android:style/Widget.Holo.Light.RatingBar.Small"
android:progress="3"
android:max="5"
android:numStars = "5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />


</LinearLayout>

在不同尺寸的设备上显示效果的屏幕截图:

Nexus S rating barNexus S 评分栏

Tablet rating bar平板电脑评分栏

Small Device rating bar小型设备评级栏

即使它仅在预览工具中,我也可以确认它在设备上的实际外观。

小型设备的行为令人抓狂。指定 5 颗星的 RatingBar 如何只显示 3 颗星,为什么不缩小星星以适合窗口?

考虑到 wrap_content 宽度是问题所在,我切换到 layout_width="fill_parent"并没有改变小型设备上的外观,但它在平板电脑上完全搞砸了(对于 5 的“numStars”来说太多了):

Tablet with fill_parent for width

我的问题是,有没有办法让 RatingBar 在大小调整方面表现得当?您会认为 numStars 或 max 就足够了,但它完全是任意的。当拉长 RatingBar 以便绘制更多星星时,它会添加星星,看看进度为 3 时,它如何根据显示的星星数绘制它?不遵守 numStars 是没有意义的!

如果无法从 RatingBar 获得逻辑性能,是否有任何替代方案,包括第 3 方小部件?如果没有,我想我总是可以绘制 5 个 ImageView,然后对其进行相应的调整。

(请记住,所有这些行为都是在布局中只有一个 RatingBar 表现出来的——忘记尝试调整其他小部件/组件的大小,或使用您自己的样式。我知道它已经完成,但为什么这是默认行为? )

最佳答案

我在使用股票 RatingBar 时和你有同样的感觉,所以我自己做了:SimpleRatingBar .

它的特点:

  • 完全可用的 android:layout_width:它可以设置为 wrap_contentmatch_parent 或任意 dp。
  • 任意数量的星星。
  • 任意步长。
  • 星星的大小可以精确控制或通过设置最大大小来控制。
  • 可自定义的颜色(边框、填充和星星背景)。
  • 星星之间可自定义的大小分隔。
  • 可定制的星星边框宽度。
  • 允许设置 OnRatingBarChangeListener
  • 可以将星星填充设置为从左到右或从右到左(RTL 语言支持)。
  • AnimationBuilder 集成在 View 中以通过动画以编程方式设置评分。

Here is a preview of it .

您可以在 jcenterMaven Central 中找到它。所以在你的 build.gradle 文件中添加你的依赖项:

编译 'com.iarcuschin:simpleratingbar:0.1.+'

希望有用。

关于Android RatingBar - 一团糟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12454644/

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