- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试以编程方式设置布局宽度。
ViewTreeObserver vtoRecyclerView = mMainLayout.getViewTreeObserver();
vtoRecyclerView.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mMainLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
ViewGroup.LayoutParams lpView = mMainLayout.getLayoutParams();
lpView.width = ViewGroup.LayoutParams.MATCH_PARENT-20;
mMainLayout.requestLayout();
}
});
但是 mMainLayout.getLayoutParams()
返回 width as -1 。所以当我将 width 设置为 match_parent - 20 时,它变成了 -21。我想将 width
设置为 match_parent
- 20。这种方法有什么问题。
最佳答案
此处代码的根本问题是因为您将宽度设置为:
lpView.width = ViewGroup.LayoutParams.MATCH_PARENT-20;
而 ViewGroup.LayoutParams.MATCH_PARENT 是一个常量。您可以在 ViewGroup 类上找到常量
public static final int MATCH_PARENT = -1;
这很明显,因为 -1 - 20 是 -21
你可以在这里做的是,你可以把这行改成
lpView.width = mMainLayout.getWidth()-20;
关于android - getLayoutParam 返回宽度为 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39220593/
我创建了一个扩展 View 的类: public class BoardView extends View { 并且我在应用程序的 main.xml 文件中指定了 BoardView 的宽度和高度:
我有一个自定义的 ImageView 类(我认为类中的代码并不重要,但无论如何我都会将其包含在这里以防万一): package com.example.vroy.customcirclebut
我试图在我的函数中获取 android:layout_weight。这是我的 xml 代码: ...... 我的功能部分: import android.widget.Li
如果我想在 Java 中以编程方式设置 ImageView 的宽度/高度,如下所示: image_view.getLayoutParams().width = 200; “200”的单位是什么?是px
我正在尝试以编程方式设置布局宽度。 ViewTreeObserver vtoRecyclerView = mMainLayout.getViewTreeObserver(); vto
例如,如果你想将某些 View 的 LayoutParams 更改为 WRAP_CONTENT,同时 width 和 height以编程方式,它看起来像这样: final ViewGroup.Lay
我已经编写了代码来动态设置 View 的高度和宽度 view.getLayoutParams().width = 120; view.getLayoutParams().height = 120; 它
View 的 getHeight() 和 getLayoutParams().height 有什么区别?我有一个 View (GoogleAdView),我想隐藏它,我将 getLayoutParam
我有以下看法: 我正在我的项目中实现一个计时器。因此,每秒调用一次函数 onTick(): public void onTick(long millisUntilFinished) {
我有一个 Seekbar,除了一个部分外,它工作得很好。我想根据 Seekbar 值调整 textView 的高度。 我正在使用这段代码来调整 textView 的高度: SeekBar sb1 =
我正在用这个简单的方法以编程方式创建一个小部件 private ImageView getModuleIconView(Module module) { ImageView view = ne
当我像这样在 RecyclerView.Adapter 中使用 ViewBinding 时: override fun onCreateViewHolder(parent: ViewGroup, vi
当我像这样在 RecyclerView.Adapter 中使用 ViewBinding 时: override fun onCreateViewHolder(parent: ViewGroup, vi
我有一个带有一个 View 对象(一个简单的位图)的RelativeLayout。为了兼容性,我使用 getLayoutParams() 和 setLayoutParams() 来移动它。 但是,当从
我有一个 RecyclerView,为此我有一个自定义适配器,并且我已将 LayoutManager 设置为 FlexboxLayoutManager。对于每个 child ,我想将 FlexGrow
如果我声明 LinearLayout linearLayout 并查看 linearLayout.getLayoutParams(),它会给我 ViewGroup.LayoutParams,而不是 L
在 xml 中获取我的 TextView: 我想创建多个 TextView,但我希望它们看起来与this 相同。 所以我尝试了: TextView newTextView = new TextVie
这是我创建新 ImageView 的源代码: ImageView image = new ImageView(this); LinearLayout.LayoutParams params =
本文整理了Java中com.google.android.youtube.player.YouTubeThumbnailView.getLayoutParams()方法的一些代码示例,展示了YouTu
我有一个 Android 对话框,我想将其放置在其窗口中的特定位置。 我正在使用 API 8 为什么int a == -2和int b == 153不是正数? 有什么区别 getLayoutParam
我是一名优秀的程序员,十分优秀!