我有以下观点:
<View
android:id="@+id/divider"
android:layout_height="2dp"
android:background="#ffffff"
android:layout_below="@+id/timer"
android:layout_width="wrap_content" />
Run Code Online (Sandbox Code Playgroud)
我正在我的项目中实现一个计时器。因此,函数 onTick() 每秒被调用一次:
public void onTick(long millisUntilFinished) {
secsPassed++;
minsPassed = (secsPassed-1)/60;
View dividerWhite = findViewById(R.id.dividerWhite);
View divider = findViewById(R.id.divider);
Log.i("divider.getWdith() = ", divider.getWidth()-secsPassed + "");
Log.i("layout width ", divider.getLayoutParams().width + " ");
//further code to implement a timer
Run Code Online (Sandbox Code Playgroud)
问题是,当divider.getLayoutParams().width的值divider.getWidth()正确时(即剩余秒数),我得到 -1
我需要随着时间的推移动态改变视图的宽度。divider.setLayoutParams().width是一个很好的选择。但是,它并没有改变布局宽度,它仍然是-1
getLayoutParams().width 当宽度为 时返回 -1 MATCH_PARENT。getLayoutParams().width可以是 FILL_PARENT(MATCH_PARENT在 API 级别 8 中替换为 ) 或WRAP_CONTENT或 精确大小。但getWidth()始终返回以像素为单位的宽度。
| 归档时间: |
|
| 查看次数: |
1902 次 |
| 最近记录: |