![](/img/trans.png)
[英]Error inflating class com.google.android.material.slider.Slider
[英]Vertical slider in android using google material library
我有這個谷歌材料 slider 在水平方向對齊:
<com.google.android.material.slider.Slider
android:id="@+id/slider_tilt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/tilt_btn"
android:layout_marginBottom="20dp"
android:layout_marginTop="10dp"
android:layout_marginHorizontal="65dp"
android:valueFrom="-4"
android:valueTo="4"
android:stepSize="0.5"/>
但我希望它處於垂直方向並與屏幕左側對齊。 我嘗試旋轉它,但無法獲得左側 alignment,如果有出路,請告訴我。
<FrameLayout
android:layout_width="32dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:orientation="vertical">
<com.google.android.material.slider.Slider
android:id="@+id/sldPenWidth"
android:layout_width="200dp"
android:layout_height="32dp"
android:layout_gravity="center"
android:rotation="270"
android:value="1"
android:valueFrom="0.1"
android:valueTo="10" />
</FrameLayout>
將 attr android:rotation
值設置為270
,然后將其放入 FrameLayout
現在我有這樣的事情:
class VerticalSlider @JvmOverloads
constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0)
: com.google.android.material.slider.Slider(context, attrs, defStyleAttr) {
init {
rotation = 270f
}
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(heightMeasureSpec, widthMeasureSpec)
}
}
我仍然必須包裝它:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<....VerticalSlider
style="@style/InstSliderWhiteMatchWrap"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:value="100"
app:haloRadius="15dp"
app:thumbRadius="9dp" />
</FrameLayout>
我對 haloRadius 有疑問,必須將其設置為較低的值才能不顯示硬線,看起來布局邊距沒有正確考慮,我嘗試了很多東西......否則對我來說,這種方式更具可讀性和可重用性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.