Android 自动调整类TextView的大小时出错
我开始使用,它在大多数情况下都运行得很好,以下情况除外 我有一个recyclerview,在项目布局中我有以下文本视图:Android 自动调整类TextView的大小时出错,android,textview,android-inflate,Android,Textview,Android Inflate,我开始使用,它在大多数情况下都运行得很好,以下情况除外 我有一个recyclerview,在项目布局中我有以下文本视图: <TextView android:id="@+id/title_tv" android:layout_width="0dp" android:layout_height="0dp" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" androi
<TextView
android:id="@+id/title_tv"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:ellipsize="end"
android:gravity="top|center_horizontal"
android:maxLines="2"
android:textColor="@color/e_white"
app:autoSizeMaxTextSize="14sp"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_min="25dp"
app:layout_constraintStart_toStartOf="parent"
tools:text="@tools:sample/cities" />
有人能给我解释一下这种行为吗?在指定
app:autosizemaxtsize=12sp
时会发生这种情况,因为最大文本大小将等于它在autoSize
中可能具有的最小文本大小(这也是默认值12sp
)
自动调整大小
不允许最大值等于或小于最小值(这样就不会自动调整大小)
解决方案:
为了能够将最大值设置为12sp,您需要减小它可能具有的最小文本大小(例如,使用
app:autosizeminextsize=6sp
。当指定app:autosizemaxtsize=12sp
时,会发生这种情况,因为最大值随后会变为等于它可能具有的最小文本大小(使用autoSize
(也是默认的12sp
)
自动调整大小
不允许最大值等于或小于最小值(这样就不会自动调整大小)
解决方案:
要将最大值设置为12sp,您需要减小它可能具有的最小文本大小,例如,使用
app:autoSizeMinTextSize=6sp
。完美解释!完美解释!
android.view.InflateException: Binary XML file line #30: Binary XML file line #30: Error inflating class TextView
at android.view.LayoutInflater.inflate(LayoutInflater.java:543)
at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
at my.package.MyAdapter.onCreateViewHolder(MyAdapter.java:41)
at my.package.MyAdapter.onCreateViewHolder(MyAdapter.java:22)
at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6794)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5975)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2230)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1557)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4194)
at android.view.View.layout(View.java:16672)
at android.view.ViewGroup.layout(ViewGroup.java:5440)
at android.support.constraint.ConstraintLayout.onLayout(ConstraintLayout.java:1915)
at android.view.View.layout(View.java:16672)
at android.view.ViewGroup.layout(ViewGroup.java:5440)
at android.support.constraint.ConstraintLayout.onLayout(ConstraintLayout.java:1915)
at android.view.View.layout(View.java:16672)
at android.view.ViewGroup.layout(ViewGroup.java:5440)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16672)
at android.view.ViewGroup.layout(ViewGroup.java:5440)
at android.support.constraint.ConstraintLayout.onLayout(ConstraintLayout.java:1915)
at android.view.View.layout(View.java:16672)
at android.view.ViewGroup.layout(ViewGroup.java:5440)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16672)
at android.view.ViewGroup.layout(ViewGroup.java:5440)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16672)
at android.view.ViewGroup.layout(ViewGroup.java:5440)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16672)
at android.view.ViewGroup.layout(ViewGroup.java:5440)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16672)
at android.view.ViewGroup.layout(ViewGroup.java:5440)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
at android.view.View.layout(View.java:16672)
at android.view.ViewGroup.layout(ViewGroup.java:5440)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2207)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1963)