📅  最后修改于: 2023-12-03 15:13:22.813000             🧑  作者: Mango
在Android开发中,要获得控件或视图的宽度,可以使用以下方法:
可以在布局文件的XML中直接指定控件的宽度。例如:
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
然后在代码中就可以通过findViewById方法获得该控件,并获取它的宽度。
TextView textView = findViewById(R.id.text_view);
int width = textView.getWidth();
有时候在布局文件中无法预先指定宽度,这时可以使用ViewTreeObserver监听布局完成的事件,然后在回调方法中获取控件的宽度。
TextView textView = findViewById(R.id.text_view);
ViewTreeObserver viewTreeObserver = textView.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int width = textView.getWidth();
// 在这里使用获取到的控件宽度
// ...
// 移除监听器,避免重复调用
textView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
可以在控件的post方法中获取控件的宽度。
TextView textView = findViewById(R.id.text_view);
textView.post(new Runnable() {
@Override
public void run() {
int width = textView.getWidth();
// 在这里使用获取到的控件宽度
// ...
}
});
以上是在代码中动态获得控件宽度的几种方法,根据具体情况选择合适的方法。