我想以编程方式更改Horizontal Progressbar的宽度(使用RelativeLayout在XML中设置初始大小...但我想基于某些值动态更改它。)
我在我的代码中尝试过setMinimumWidth(50),但这并没有什么区别。我也试过设置'android:layout_width =“wrap_content”,但这也不起作用。
这是我的XML:
<ProgressBar android:id="@+id/progress_horizontal"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="100dip"
android:layout_height="wrap_content"
/>
提前感谢您的任何帮助!
答案 0 :(得分:0)
您的ProgressBar有哪些布局?这对于如何解释layout_width和height有所不同。
但是,我认为你看到View的宽度和layout_width之间存在冲突。每次渲染视图时,其首选大小都是根据设置的minWidth,width等确定的。然后,视图所在的布局可以根据layout_width信息更新要渲染的实际大小。有关两阶段流程的详细信息,请参阅How Android Draws Views和View尺寸文档。
在你的情况下,你将layout_width设置为100,并将最小宽度设置为50,所以我认为它总是显示为100。
尝试将layout_width设置为wrap_content,然后更新ProgressBar的首选宽度。
答案 1 :(得分:0)
我认为当你给它初始值为100时,会遇到setmindwidth。系统会重新识别它超过50,然后继续按照它所说的其余部分来做。尝试使最小宽度为150,将xml设置为初始值75,并在onCreate中设置一个Log.d(“progbar”,String.valueOf(myprogress.width));
免责声明 - 在没有开发环境的工作计算机前编写,以供参考。