为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用约束布局管理具有布局的自定义视图的宽度?

如何使用约束布局管理具有布局的自定义视图的宽度?

开满天机 2022-09-14 10:27:31
我有一个片段,我正在使用一个手风琴视图,我从GitHub下载了它 - https://github.com/riyagayasen/Android_accordion_view,在其主体(这是一个相对布局)中,我需要一个名为手风琴项目的自定义视图,就像图片上的第二个视图一样,我只是在片段的xml中制作:https://pp.userapi.com/c846123/v846123865/1d925d/CaEhr8uSLFA.jpg但是由于某种原因,我的自定义视图(第一个)具有wrap_content宽度行为。代码如下:这是我的片段xml中手风琴视图的正文<android.support.constraint.ConstraintLayout                android:layout_width="match_parent"                android:layout_height="wrap_content"><!-- This is my custom view --><!-- Notice that the width is set to match_constraint -->                <com.app.myapp.views.AccordionItem                    android:id="@+id/item"                    android:layout_width="0dp"                    android:layout_height="wrap_content"                    android:layout_marginStart="8dp"                    app:isStarred="true"                    app:layout_constraintEnd_toEndOf="parent"                    app:layout_constraintStart_toStartOf="parent"                    app:layout_constraintTop_toTopOf="parent"                    app:title="Another title" /><!-- This is an example of how my view should look like -->                <android.support.constraint.ConstraintLayout                    android:layout_width="match_parent"                    android:layout_height="wrap_content"                    android:layout_marginStart="8dp"                    android:layout_marginTop="8dp"                    android:background="@drawable/accordion_item"                    app:layout_constraintStart_toStartOf="parent"                    app:layout_constraintTop_toBottomOf="@+id/item">                </android.support.constraint.ConstraintLayout>            </android.support.constraint.ConstraintLayout>
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

没有父级的膨胀方法将丢失布局参数(高度,宽度)


private void initView() {

    inflate(getContext(), R.layout.accordion_item, this);

    // or

    // View view = LayoutInflater.from(getContext()).inflate(R.layout.accordion_item, this, false);

    // addView(view);

}


查看完整回答
反对 回复 2022-09-14
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

你真的不需要这个简单布局的库,看看这个例子:


<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".Fragments.CheckoutScreen">



<!-- This is an example of how my view should look like -->


<CheckBox

    android:id="@+id/favourite_checkBox"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_marginEnd="8dp"

    app:layout_constraintBottom_toBottomOf="@+id/textView4"

    app:layout_constraintEnd_toEndOf="parent"

    app:layout_constraintTop_toTopOf="@+id/textView4" />


<TextView

    android:id="@+id/textView5"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_marginStart="8dp"

    android:text="T"

    android:textSize="18sp"

    app:layout_constraintBottom_toBottomOf="@+id/textView4"

    app:layout_constraintStart_toStartOf="parent"

    app:layout_constraintTop_toTopOf="@+id/textView4" />


<TextView

    android:id="@+id/textView4"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_marginStart="8dp"

    android:text="Title"

    android:textSize="18sp"

    app:layout_constraintBottom_toBottomOf="parent"

    app:layout_constraintStart_toEndOf="@+id/textView5"

    app:layout_constraintTop_toTopOf="parent"

    app:layout_constraintVertical_bias="0.383" />


查看完整回答
反对 回复 2022-09-14
  • 2 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信