Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 进度条和开关中的布局宽度/高度=包裹内容是什么意思_Java_Android_User Interface_View_Android Wrap Content - Fatal编程技术网

Java 进度条和开关中的布局宽度/高度=包裹内容是什么意思

Java 进度条和开关中的布局宽度/高度=包裹内容是什么意思,java,android,user-interface,view,android-wrap-content,Java,Android,User Interface,View,Android Wrap Content,我无法理解视图元素的值wrap_content(例如ProgressBar、Switch、带背景的原始视图-由于某种原因占据了屏幕上所有可用的位置),它并不是像TextView那样微不足道,wrap_content意味着“与您内部的文本一样高、一样宽”。 有人能帮我理解吗 <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/prog_bar_containter" android:layou

我无法理解视图元素的值wrap_content(例如ProgressBar、Switch、带背景的原始视图-由于某种原因占据了屏幕上所有可用的位置),它并不是像TextView那样微不足道,wrap_content意味着“与您内部的文本一样高、一样宽”。 有人能帮我理解吗

<androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/prog_bar_containter"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:background="@color/black"
    android:elevation="20dp"
    app:layout_constraintBottom_toBottomOf="@+id/rc"
    app:layout_constraintEnd_toEndOf="@+id/rc"
    app:layout_constraintStart_toStartOf="@+id/rc"
    app:layout_constraintTop_toTopOf="@+id/rc">

    <ProgressBar
        android:id="@+id/prog_bar"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

在每个视图组件中,您可以找到方法
on measure
在这里计算 将显示使视图出现的视图
如果您指定了高度宽度,则会使视图显示为那样,如果添加自定义宽度高度,则视图可能显示不好(对不起,我的英语)

如果您想知道布局中使用的组件的宽度和高度有多大,可以使用此代码。此处progressbar的高度和宽度设置为wrap_内容,这意味着其宽度和高度具有默认大小,我们想知道这些默认大小有多大。结果是
px

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ProgressBar
        android:id="@+id/progressbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

您好。谢谢您的回答,但我不明白它与宽度和高度的换行内容值有什么关系?简单地开发人员计算更好的宽度和高度填充\u父项现在不推荐使用匹配\u父项此用法用于在所有父项中创建视图如果父项是匹配的\u父项它将匹配screen@MohamadMoeinGolchin,嗨,谢谢你的回答,但是你根本没有提到progressBar和switch。正如我在问题中所说的,我理解TextView、Button、ImageView、layouts等中的wrap_内容含义。但它在progressBar和switch等组件中的含义是什么?对于它们来说,wrap_内容和match_父项显然是相同的,但当您想要为它们设置重力时,它就不同了它们的宽度是“包裹内容”或“匹配父项”。@EITANOS30不,不是。我只是检查了它。匹配父项占用父项布局中的所有可用空间,而包裹内容只占用一个小位置。是的,正如我在为它们设置重力时所说的,包裹内容或匹配父项很重要。但显然它们是一样的。@EITANOS30做到了你检查了吗?因为我刚检查过,它们看起来不一样。包裹内容很小,而匹配家长让进度条与他“生活”的容器一样大。在你的评论中,“我必须为布局宽度和高度写一些值,所以如果我要放一个特定的数字,它将与数字(dp)一样大。”,如果我把match\u parent放进去,它会和它的parent一样高,一样宽,但我无法理解wrap\u内容的行为“,我想您现在已经想到了我的答案中为progressbar包装内容的含义。您可以测试我的代码中任何您喜欢的组件。如果您还有其他问题,请提出新问题。您可以检查我的答案是否正确。如果您阅读我的问题,您可以清楚地看到,我是在询问组件(如:ProgressBar和Switch)的包装内容的含义。在你的正式回答中,你解释了如何(检查)组件的大小,这与我的问题无关。在评论中,您解释了wrap_内容表示“采用”组件默认大小,这应该是答案,以便我可以批准它。我非常感谢您的帮助,但为了批准您的答案,您应该在答案中写下您在最新评论中告诉我的内容。答案已编辑
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        progressbar.post(Runnable {
            val a= progressbar.getWidth()
            val b=progressbar.getHeight()
            Log.d("abc", a.toString())
            Log.d("abc", b.toString())
        })
    }
}