Android 无法以编程方式更改水平进度条的宽度

Android 无法以编程方式更改水平进度条的宽度,android,Android,我希望以编程方式更改水平进度条的宽度(初始大小是使用RelativeLayout在XML中设置的……但我希望基于某些值动态更改它) 我在代码中尝试了setMinimumWidth(50),但这并没有什么不同。我也尝试过设置“android:layout\u width=“wrap\u content”,但这也不起作用 以下是我的XML: <ProgressBar android:id="@+id/progress_horizontal" style="?android:attr/

我希望以编程方式更改水平进度条的宽度(初始大小是使用RelativeLayout在XML中设置的……但我希望基于某些值动态更改它)

我在代码中尝试了setMinimumWidth(50),但这并没有什么不同。我也尝试过设置“android:layout\u width=“wrap\u content”,但这也不起作用

以下是我的XML:

<ProgressBar android:id="@+id/progress_horizontal"
     style="?android:attr/progressBarStyleHorizontal"
     android:layout_width="100dip"
     android:layout_height="wrap_content" 
/>


提前感谢您的帮助

进度条的布局是什么?这就不同于如何解释布局的宽度和高度

但是,我认为您看到了视图宽度和布局宽度之间的冲突。每次渲染视图时,其首选大小将根据其上设置的minWidth、width等确定。然后,视图所在的布局可以根据布局宽度信息更新要渲染的实际大小。有关两阶段流程的更多信息,请参阅和调整文档

在您的例子中,布局宽度设置为100,最小宽度设置为50,因此我认为它将始终显示100


尝试将布局宽度设置为包裹内容,然后更新ProgressBar的首选宽度。

我可以想象,当您将setmindwidth的初始值设置为100时,它会得到满足。该系统将重新认可超过50名的员工,然后继续按照其余员工的要求行事。尝试将最小宽度设置为150,将xml的初始值设置为75,并在onCreate中使用Log.d(“progbar”,String.valueOf(myprogress.width))


免责声明-在没有开发环境的工作计算机前编写,仅供参考。

感谢您的快速响应!我正在使用RelativeLayout(见下文)。我确实更改了XML中的布局宽度以包装内容,但这并没有产生影响(无论我将setMinimumWidth更改为什么,进度条似乎都保持固定大小-相对较小。我也将检查您提供的文档链接。您可以编辑原始帖子,以更可读的方式提供其他RelativeLayout信息!可能有助于包括整个布局,因为使用Relative布局布局中的各种视图相互影响。感谢您的快速响应。我将布局宽度的xml更改为75dip。然后我设置了MinimumWidth(200)并重新运行。不幸的是,这不起作用(即,没有增加条形图的大小)。当我在设置MinimumWidth之前运行Log.d(“progbar”,String.valueOf(myprogress.getWidth()))时,这两个都是在设置MinimumWidth之前运行的(200)之后,日志信息相同-“D/progbar(565):0”