Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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/4/kotlin/3.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
Android 约束加权链赢得';一动不动_Android_Kotlin_Android Constraintlayout - Fatal编程技术网

Android 约束加权链赢得';一动不动

Android 约束加权链赢得';一动不动,android,kotlin,android-constraintlayout,Android,Kotlin,Android Constraintlayout,由于某些原因,未应用my ConstraintLayout项目的权重。我已经看过好几遍了,但我不确定哪里出了错 XML <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_scrollView_LL" android:fillViewport="t

由于某些原因,未应用my ConstraintLayout项目的权重。我已经看过好几遍了,但我不确定哪里出了错

XML

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/my_scrollView_LL"
    android:fillViewport="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingStart="@dimen/activity_horizontal_margin"
    android:paddingEnd="@dimen/activity_horizontal_margin">

    <androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/my_constraintLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</ScrollView>

Kotlin

class MyFragment : androidx.fragment.app.Fragment() {
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.fragment_sv, container, false)
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        val v = view
        val myCL = v!!.findViewById<ConstraintLayout>(R.id.my_constraintLayout)


        val rlp1 = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT)


        val r = context!!.resources
        val fourDp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4f, r.displayMetrics).toInt()
        val tenDp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10f, r.displayMetrics).toInt()


        /*
         * CardView items
         */
        val ivIcon = ImageView(context)
        ivIcon.setImageResource(R.drawable.ic_warning)
        ivIcon.setColorFilter((colorFTC), android.graphics.PorterDuff.Mode.SRC_IN)
        ivIcon.layoutParams = rlp1

        val tvText = TextView(context)
        tvText.text = "Lorem ipsum dolor sit amet, eos aliquam vulputate percipitur ei."
        TextViewCompat.setTextAppearance(tvText, android.R.style.TextAppearance_Medium)
        tvText.layoutParams = rlp1

        val cvMain = context?.let { CardView(it) }
        when {
            cvMain != null -> {
                cvMain.radius = fourDp.toFloat()
                cvMain.setContentPadding(tenDp, tenDp, tenDp, tenDp)
                cvMain.useCompatPadding = true
                cvMain.cardElevation = fourDp.toFloat()
            }
        }

        cvMain!!.id = View.generateViewId()
        ivIcon.id = View.generateViewId()
        tvText.id = View.generateViewId()

        myCL.addView(cvMain)
        cvMain.addView(ivIcon)
        cvMain.addView(tvText)

        // Constraint Set
        val set = ConstraintSet()
        set.clone(myCL)
        set.connect(cvMain.id, ConstraintSet.TOP, myCL.id, ConstraintSet.TOP, 0)
        set.connect(ivIcon.id, ConstraintSet.START, myCL.id, ConstraintSet.START, 0)
        set.connect(ivIcon.id, ConstraintSet.END, tvText.id, ConstraintSet.START, tenDp)
        set.connect(tvText.id, ConstraintSet.START, ivIcon.id, ConstraintSet.END, tenDp)
        set.connect(tvText.id, ConstraintSet.END, myCL.id, ConstraintSet.END, 0)
        set.setHorizontalChainStyle(ivIcon.id, ConstraintSet.CHAIN_PACKED)
        set.setHorizontalChainStyle(tvText.id, ConstraintSet.CHAIN_PACKED)
        set.setHorizontalWeight(ivIcon.id, 10f)
        set.setHorizontalWeight(ivIcon.id, 90f)
        set.applyTo(myCL)

        super.onActivityCreated(savedInstanceState)
    }
}
classmyfragment:androidx.fragment.app.fragment(){
覆盖创建视图(充气机:布局充气机,容器:ViewGroup?,savedInstanceState:Bundle?):视图{
返回充气机。充气(R.layout.fragment_sv,容器,假)
}
覆盖活动创建的乐趣(savedInstanceState:Bundle?){
val v=视图
val myCL=v!!.findViewById(R.id.my_constraintLayout)
val rlp1=ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.WRAP_内容,ConstraintLayout.LayoutParams.WRAP_内容)
val r=context!!.resources
val fourDp=TypedValue.applyDimension(TypedValue.COMPLEX\u UNIT\u DIP,4f,r.displayMetrics).toInt()
val tenDp=TypedValue.applyDimension(TypedValue.COMPLEX\u UNIT\u DIP,10f,r.displayMetrics).toInt()
/*
*CardView项目
*/
val ivIcon=ImageView(上下文)
ivIcon.setImageResource(R.drawable.ic_警告)
ivIcon.setColorFilter((colorFTC),android.graphics.PorterDuff.Mode.SRC_-IN)
ivIcon.layoutParams=rlp1
val tvText=文本视图(上下文)
tvText.text=“Lorem ipsum door sit amet,eos aliquam vulputate percipitur ei。”
TextViewCompat.setTextAppearance(tvText,android.R.style.TextAppearance\u中位)
tvText.layoutParams=rlp1
val cvMain=context?.let{cardwiew(it)}
什么时候{
cvMain!=null->{
cvMain.radius=fourDp.toFloat()
cvMain.setContentPadding(tenDp,tenDp,tenDp,tenDp)
cvMain.useCompatding=true
cvMain.cardElevation=fourDp.toFloat()
}
}
cvMain!!.id=View.generateViewId()
ivIcon.id=View.generateViewId()
tvText.id=View.generateViewId()
myCL.addView(cvMain)
cvMain.addView(ivIcon)
cvMain.addView(tvText)
//约束集
val set=ConstraintSet()
set.clone(myCL)
set.connect(cvMain.id、ConstraintSet.TOP、myCL.id、ConstraintSet.TOP、0)
set.connect(ivIcon.id、ConstraintSet.START、myCL.id、ConstraintSet.START、0)
set.connect(ivIcon.id、ConstraintSet.END、tvText.id、ConstraintSet.START、tenDp)
set.connect(tvText.id、ConstraintSet.START、ivIcon.id、ConstraintSet.END、tenDp)
set.connect(tvText.id、ConstraintSet.END、myCL.id、ConstraintSet.END、0)
set.setHorizontalChainStyle(ivIcon.id,ConstraintSet.CHAIN_-PACKED)
set.setHorizontalChainStyle(tvText.id,ConstraintSet.CHAIN_-PACKED)
设置水平重量(ivIcon.id,10f)
设置水平重量(ivIcon.id,90f)
集合。应用于(myCL)
super.onActivityCreated(savedInstanceState)
}
}

约束仅适用于父视图的直接子视图
ConstraintLayout
。在您的情况下,
my_constraintLayout
只有一个子项,即
cardwiew
。使用
addView()
添加的
ImageView
TextView
CardView
的子项,而不是
ConstraintLayout
,因此您尝试设置的约束对它们没有影响


您需要在
CardView
中有一个
ConstraintLayout
,以添加
视图
并设置约束。

约束仅适用于父
ConstraintLayout
的直接子视图。在您的情况下,
my_constraintLayout
只有一个子项,即
cardwiew
。使用
addView()
添加的
ImageView
TextView
CardView
的子项,而不是
ConstraintLayout
,因此您尝试设置的约束对它们没有影响

您需要在
CardView
中有一个
ConstraintLayout
,以添加
视图
并设置约束