在 wrap_content 之后获取按钮大小?
get button size after wrap_content?
如何在考虑 wrap_content 属性后获取按钮大小?
我想创建 2 个大小相同的按钮,它们都具有 wrap_content 属性,所以我的解决方案是使用 wrap_content 创建它们,获取最大宽度和高度,然后应用两个按钮的最大值,问题是我在尝试打印按钮的宽度和高度时只得到零值。
//Create the first button
Button firstButton= new Button(activity);
LinearLayout.LayoutParams secondaryParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f);
footerLayout.addView(firstButton, firstParams);
//same thing for the other button
Button secondaryButton= new Button(activity);
LinearLayout.LayoutParams secondaryParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f);
footerLayout.addView(secondaryButton, 0, secondaryParams );
//trying to get the size:
firstButton.measure(0, 0); //must call measure!
int measuredWidth = firstButton.getWidth();
int measuredHeight = firstButton.getHeight();
在应用 WRAP_CONTENT 属性后获取 2 个按钮的大小。
您试图过早获取宽度和高度,实际上,如果您使用的是 activity,则可以在此处获取尺寸:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
//Here you can get the size!
}
此方法被调用多次或每次 window 中发生变化(视图隐藏、消失、添加新视图等)时调用。所以请谨慎使用!
如何在考虑 wrap_content 属性后获取按钮大小?
我想创建 2 个大小相同的按钮,它们都具有 wrap_content 属性,所以我的解决方案是使用 wrap_content 创建它们,获取最大宽度和高度,然后应用两个按钮的最大值,问题是我在尝试打印按钮的宽度和高度时只得到零值。
//Create the first button
Button firstButton= new Button(activity);
LinearLayout.LayoutParams secondaryParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f);
footerLayout.addView(firstButton, firstParams);
//same thing for the other button
Button secondaryButton= new Button(activity);
LinearLayout.LayoutParams secondaryParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f);
footerLayout.addView(secondaryButton, 0, secondaryParams );
//trying to get the size:
firstButton.measure(0, 0); //must call measure!
int measuredWidth = firstButton.getWidth();
int measuredHeight = firstButton.getHeight();
在应用 WRAP_CONTENT 属性后获取 2 个按钮的大小。
您试图过早获取宽度和高度,实际上,如果您使用的是 activity,则可以在此处获取尺寸:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
//Here you can get the size!
}
此方法被调用多次或每次 window 中发生变化(视图隐藏、消失、添加新视图等)时调用。所以请谨慎使用!