- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前在我的 android 应用程序中,我的 ImageButton getWidth()
和 getHeight()
返回 0。在搜索论坛后,我意识到这是因为 Layout/View操作系统尚未完成/最终确定,因此返回 0。因此,他们建议使用 OnGlobalLayoutListener
来解决此问题。但是,该按钮是在 Fragment 中创建的,该 Fragment 具有返回 fragment View 的 onCreateView()
方法。那么在这种情况下我该如何附加这个监听器呢?
谢谢。
最佳答案
完全一样。您可以在 onCreateView
或 onViewCreated
中执行此操作。重要的是它必须在你inflate
你的布局之后:
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_test, container, false);
final View measuredView = rootView.findViewById(R.id.measured_view);
measuredView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int width = measuredView.getWidth();
int height = measuredView.getHeight();
if (width > 0 && height > 0) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
measuredView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
measuredView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
//DO SOMETHING WITH NON-ZERO DIMENSIONS
}
}
});
return rootView;
}
关于android - ImageButton.getWidth() 和 getHeight() 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38161914/
我有下面的代码,它是在一个函数中定义的,该函数实际上设置父组件的宽度并进行布局...这个函数是从 4 个地方调用的,在一个地方有一个场景出现下面的错误,你可以看到我有检查了未定义,但它仍然在这个 IF
我正在处理 Java JFrame 对象,每当我调用 getWidth() 和 getHeight() 的值时,它都是总是返回超过我使用 setPreferredSize() 函数为面板设置的值。 有
我有一个图像displayStartText和originalStartText这样初始化: Image originalStartText = new ImageIcon(getClass().ge
为什么两个输出都打印84?第一个应显示为 84,第二个应显示为 220。如果我再次单击,则两个输出均显示为 220。 public void btnClick(View v) { System
我有一个算法,可以渲染具有宽度和高度的对象。但是当我使用 setWidth() 时,该对象实际上并没有获得该宽度,它以某种方式获得了我给它的宽度的 x2 之类的东西。检查下面的代码: var
我很难找到为什么这段代码返回空指针: import java.awt.Graphics2D; import java.awt.Rectangle; public class Move { priv
我想在加载后获取位图的宽度,我使用这段代码,其中 mybackground 是一个等于 R.drawable.background 的 int。 background=BitmapFactory.de
我希望通过使用 gamePanel 的 getWidth 方法来定位 Racket ,但它返回 0。它对于框架工作正常,对于面板也有效,但我决定重写大量代码并现在我无法让它工作。感谢帮助:) impo
我知道 Display 方法 getWidth() 自 API 13 以来已被弃用。我有以下代码行: Display display = ((WindowManager) getContext().g
我有一个像这样的 ImageView 我正在尝试通过使用获取在 imageview 中显示的图像的宽度 ImageView artCover = (ImageView)findViewById(R
我想让我的 ImageView 的大小是基于其宽度的矩形,这是通过覆盖 onGlobalLayout() 并放置 photo.getWidth() 完成的。但它只在竖屏下有效,在横屏下无效。 肖像效果
我正在 relativeLayout 中动态创建一些 ImageView,但我需要根据屏幕的高度和宽度改变大小。在我设置高度时,尚未创建 View 和布局,这意味着 getHeight() 和 get
这些方法在动态检索时返回正确的值,例如。在 onCreate() 中,但唯一的异常(exception)是当维度在 xml 布局文件中指定为 undefined 时,像 'wrap content'
我的 android 应用程序可绘制文件夹中有一个 jpg 图像,分辨率为 1000x600。我像这样将该图像加载到位图 Bitmap bitMap = BitmapFactory.decodeRe
本文整理了Java中android.graphics.YuvImage.getWidth()方法的一些代码示例,展示了YuvImage.getWidth()的具体用法。这些代码示例主要来源于Githu
本文整理了Java中am.widget.zxingscanview.ZxingScanView.getWidth()方法的一些代码示例,展示了ZxingScanView.getWidth()的具体用法
所以我想创建一个数轴类,我可以用它来显示沿单个轴的单个点,但我希望它能够响应当前所在容器的大小,并相对于该容器更改其大小。不幸的是,我无法正确使用 getWidth() 和 getHeight() 来
我正在重写 JPanel 的 paintComponent() 方法以在屏幕上绘制一些内容。 这就是它的样子: 我使用以下代码来设置剪切区域。这样边缘就可以弯曲。 RoundRectangle2D r
我需要调用getWidth()在我的 JPanel 对象“gameboard”上并将其存储在变量“width”中。这看起来很简单 int width = gameboard.getWidth(); 但
我通过扩展 LinearLayout 创建了一个自定义 View 。我可以在布局生命周期的哪个第一个点调用 subview 的 getWidth() 并获得正值? 最佳答案 如果在 onResume
我是一名优秀的程序员,十分优秀!