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