Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.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 动态添加的RecyclerView条目不自动调整大小_Java_Android_Android Recyclerview - Fatal编程技术网

Java 动态添加的RecyclerView条目不自动调整大小

Java 动态添加的RecyclerView条目不自动调整大小,java,android,android-recyclerview,Java,Android,Android Recyclerview,所以,我一直在努力解决这个问题,但现在无法让它发挥作用。我有一个RecyclerView,按下一个按钮,它就添加了一个孩子(目前这是一个测试用例)。正如您将在下面的代码中看到的,当调用onBindView时,文本被更改。但是,正如标题所示,文本不会自动调整大小以填充所讨论的框 我怎样才能做到这一点 RecycleServiceEntry.xml: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.

所以,我一直在努力解决这个问题,但现在无法让它发挥作用。我有一个RecyclerView,按下一个按钮,它就添加了一个孩子(目前这是一个测试用例)。正如您将在下面的代码中看到的,当调用onBindView时,文本被更改。但是,正如标题所示,文本不会自动调整大小以填充所讨论的框

我怎样才能做到这一点

RecycleServiceEntry.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"

xmlns:tools="http://schemas.android.com/tools"
                                               android:layout_width="match_parent"
                                               android:layout_height="wrap_content"
                                               android:id="@+id/ma_rv_ple_layout_root"
                                          android:background="@drawable/background_border_rc"
                                               android:padding="15dp"
                                               android:clickable="true" 
                                               android:focusable="true"
                                               android:layout_margin="5dp"
>
<TextView
        android:text="@string/ma_rv_ple_project_label"
        android:layout_width="0dp"
        android:layout_height="0dp" android:id="@+id/am_rv_ple_project_title_label"
        app:layout_constraintEnd_toEndOf="parent" 
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        android:textAppearance="@style/TextAppearance.AppCompat.Display1"
        android:gravity="center"
        app:layout_constraintDimensionRatio="1"
        android:breakStrategy="balanced"
        app:autoSizeTextType="uniform"
        android:maxLines="1"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

使用
wrap\u内容时,不建议自动调整textview的大小
layout height(您的情况就是这样)。此外,textview只会自动缩小大小,因此,当您滚动时,您可能会发现文本太小,并且视图持有者被循环使用。因此,使用编程方式来处理文本是否更为有益,可以使用一些用例,例如,当box是150dp big时,它是这个x大小,当box是300dp时,它是y大小?可以使用150dp或200dp等数字在xml中设置ConstraintLayout高度或者任何你想要的。或匹配父母。或者,正如您在java/kotlin中以编程方式所说的,将layoutparam设置为不同的高度
@Override
    public void onBindViewHolder(@NonNull ProjectListAdapter.ViewHolder holder, int position) {
    // TODO: Create and build our ViewHolder.
    String entry = ProjectManager.getInstance().getProjectItem(position).getProjectName();

    holder.getProjectNameTextView().setText(entry);
}