Sta*_*wed 6 android android-ui android-layout
我知道这听起来很不错,但感觉就像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>
Run Code Online (Sandbox Code Playgroud)
屏幕截图显示了不同设备尺寸的外观:
Nexus S评级栏
平板电脑评级栏
小型设备评级栏
虽然它只在预览工具中,但我可以确认它实际上是在设备上看起来的样子.
小型设备的行为令人抓狂.指定5颗星的RatingBar如何才能显示3,为什么不缩小星星以适应窗口?
认为wrap_content宽度是问题,我切换到layout_width ="fill_parent"并且没有改变小设备上的外观,但它完全搞砸了Tablets(对于"numStars"为5)这么多:

我的问题是,有没有办法在尺寸方面为RatingBar获得正确的行为?您会认为numStars或max足够,但它完全是任意的.当RatingBar被拉伸以便它绘制更多的星星时,它会添加星星并看到如何以3的进度,它根据显示的星数绘制它?坚持使用numStars是没有意义的!
如果没有办法从RatingBar获得逻辑性能,是否有任何替代方案,包括第三方小部件?如果没有,我想我总是可以绘制5个ImageViews并且只是对它进行相应的操作.
(请记住,布局中只有一个RatingBar会显示所有这些行为 - 忘记尝试使用其他小部件/组件调整大小,或者使用自己的样式.我知道它已经完成,但为什么这是默认行为?)
我在使用 Stock RatingBar 时也有和你一样的感觉,所以我制作了自己的:SimpleRatingBar。
其特点:
android:layout_width:可以设置为wrap_content,match_parent或任意 dp。您可以在jcenter或 中找到它Maven Central。因此,在您的build.gradle文件中只需添加依赖项:
compile 'com.iarcuschin:simpleratingbar:0.1.+'
我希望它有用。
| 归档时间: |
|
| 查看次数: |
1911 次 |
| 最近记录: |