我遇到了一种自定义搜索栏的问题我所做的是创建了一个扩展SeekBar的新对象。 然后在onSizeChanged函数中,我正在计算宽度,并将其设置,并将该大小传递给super.onSizeChanged()函数。 现在,这给了我完美正确的SeekBar轨道宽度,然而,当我按下并拖动SeekBar拇指时,它向右移动的更多,拇指进一步移动搜索条轨道填充颜色区域的头部。这么多,以至于它移动到可用屏幕的边缘,因为轨道的颜色填充宽度落后。
我希望有些灵魂可以指导。没有什么花哨的简单手动干预来改变onSizeChanged的宽度就可以了。 这是我用于此
的XML<com.test.SeekBar
android:id="@+id/seek_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="1dip"
android:progress="0"
android:max="100"
android:progressDrawable="@layout/progressbar"
android:secondaryProgress="0"
/>
由于
答案 0 :(得分:0)
我找到了解决问题的方法。我的解决方案是在主要活动中以编程方式混合使用xml和设置布局参数。
然后在代码中我根据需要计算了所需的宽度并设置了布局参数 如下
int newWidth = getSeekBarWidthAsNeeded();
int newHeight = getDesiredHeight();// smaller for lareger screens
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(newWidth,newHeight);
mySeekBar.setLayoutParams(llp);
这终于照顾了我使用onSizeChanged和其他方法的困难,我在这方面遇到了很多麻烦