Android RatingBar-一团乱麻
我知道这听起来有点夸张,但感觉Android的UI组件和行为有时候有些离谱 考虑以下XML:Android RatingBar-一团乱麻,android,android-layout,android-ui,Android,Android Layout,Android Ui,我知道这听起来有点夸张,但感觉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" > <RatingBa
<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评级条
平板电脑分级栏
小型设备额定值栏
即使它只是在预览工具中,我可以确认它在设备上的实际外观
小型设备的行为令人恼火。指定5颗星的分级栏如何只显示3颗星,为什么不缩小星星的比例以适应窗口
考虑到包装内容的宽度是个问题,我切换到layout_width=“fill_parent”,这并没有改变小型设备的外观,但它在平板电脑上完全搞砸了(5个“numStars”就这么多了):
我的问题是,有没有一种方法可以让分级条在尺寸方面表现出正确的行为?你可能认为numStars或max就足够了,但这完全是武断的。当拉长分级栏以便绘制更多的星星时,它会添加星星,并查看进度为3时,它如何根据显示的星星数绘制?不遵守numStars是没有意义的
如果无法从RatingBar获得逻辑性能,是否有包括第三方小部件在内的其他选择?如果不是的话,我想我可以画5个ImageView,然后装配它来执行相应的操作
(请记住,所有这些行为都是在布局中仅使用一个分级栏展示的-忘记尝试使用其他小部件/组件或使用您自己的样式来调整大小。我知道已经完成了,但为什么这是默认行为?当使用股票分级栏时,我感觉和您一样,所以我自己做了: 它的特点是:
- 完全工作的
:它可以设置为android:layout\u width
、wrap\u content
或基本dpmatch\u parent
- 任意数量的星星
- 任意步长
- 恒星的大小可以精确控制,也可以通过设置最大大小来控制
- 可定制的颜色(星星的边框、填充和背景)
- 可定制的星间大小间隔
- 可自定义的星星边框宽度
- 允许设置OnRatingBarChangeListener
- 星形填充可以设置为从左向右或从右向左开始(RTL语言支持)
- 集成在视图中的AnimationBuilder可通过动画编程设置分级
jcenter
或Maven Central
中找到它。因此,在build.gradle
文件中,只需添加到依赖项:
编译'com.iarcuschin:simpleratingbar:0.1.+'
我希望它有用。为了解决这个问题,我刚刚创建了一个视图,该视图由5个图像视图组成,它们位于一个带有OnTouchListener@raybritton我想那是我最好的选择。我希望有一个更好的,但可惜不是这样:)。如果你把你的评论作为回答,我可以接受。这不是疯了吗?这个小部件需要关闭。我受够了和这类框架白痴做斗争!甚至我也在寻找另一种选择。希望很快就会有一个,或者我可能需要自己编写一个。我可以商业化使用吗?是的,你可以商业化使用。