我在支持库26中添加了新的自动调整功能.我阅读了一个文档,可以在这里找到:https: //developer.android.com/preview/features/autosizing-textview.html
我认为它应该以这种方式工作:您可以使用以下属性启用自动调整大小:app:autoSizeTextType="uniform".我认为TextView应该使用所有可用空间来显示整个文本(不仅仅是一个部分 - 它不应该被裁剪)并且textSize应该尽可能大.如果您需要限制文本的最大或最小大小,则可以使用以下两个属性:
app:autoSizeMinTextSize="XXsp" // (you can also use px or dp values.)
Run Code Online (Sandbox Code Playgroud)
要么
app:autoSizeMaxTextSize="XXsp"
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.假设我需要一个宽度为56dp的TextView.我有不同长度的文本,我想将这些文本设置为此TextView.它应该自动调整大小,以便尽可能显示整个文本(所有字符+未裁剪)textSize.
这是我的TextView:
<android.support.v7.widget.AppCompatTextView
android:id="@+id/vName"
style="@style/TextView.AutoSize"
android:layout_width="56dp"
android:gravity="bottom|center_horizontal"
android:maxLines="1"
app:autoSizeMinTextSize="1px"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toTopOf="@id/vGuideline"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
Run Code Online (Sandbox Code Playgroud)
不幸的是,文本视图被裁剪.我想将此String设置为上面TextView的文本:"Groupa"但结果如下:

(TextView位于ConstraintLayout内部,带有黄色圆圈背景.)
如您所见,textview根本没有调整大小.你知道该怎么办吗?
谢谢.
android autosize textview android-support-library android-8.0-oreo
当我滚动NestedScrollView到CoordinatorLayout. 我实现了这一点Behavior,您可以通过此链接进行检查(github示例)。问题是在OnNestedScroll方法内部调用显示/隐藏方法。不幸的是,有时当我滚动时,不会调用此方法。然而,onNestedScrollAccepted方法总是被调用。我没有找到任何不调用它的原因(比如 20-30% 的时间)。你知道为什么会发生这种情况吗?
这是我的行为课:
public class ScrollAwareFABBehavior extends CoordinatorLayout.Behavior {
FloatingActionMenu fabMenu;
Context cont;
public ScrollAwareFABBehavior(Context context, AttributeSet attrs) {
super();
cont =context;
}
@Override
public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, View child,
View directTargetChild, View target, int nestedScrollAxes) {
if (nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL)
{
return true;
}
return super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target,
nestedScrollAxes);
}
@Override
public void onNestedScroll(CoordinatorLayout coordinatorLayout, View child, View target,
int dxConsumed, int dyConsumed, int …Run Code Online (Sandbox Code Playgroud) android android-layout android-coordinatorlayout android-nestedscrollview
我正在使用项目中的所有Android体系结构组件(Room DB,Live Data等)。目前,我遇到一个问题,即RecyclerView应该使用从Room DB加载的数据并将其与Paging库一起显示。问题是存在多个数据类,这些数据类表示新闻源中的项目并存储在Room中,我需要在一个回收站中显示它们。
有什么办法可以轻松解决吗?例如,我可以创建所有这些类都将使用的接口吗?
android android-recyclerview android-room android-architecture-components android-jetpack
这是此图像视图的布局XML:
<ImageView
android:id="@+id/vTotalPaidAvatar"
android:layout_width="40dp"
android:layout_height="40dp"
android:contentDescription="@null"
android:src="@drawable/ic_group_ic_total"
tools:src="@drawable/ic_group_ic_total"
app:layout_constraintLeft_toLeftOf="@+id/vSettleDebtsLayout"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
app:layout_constraintTop_toTopOf="@+id/vSettleDebtsLayout"
android:layout_marginTop="16dp"
android:background="@drawable/avatar_circle" />
Run Code Online (Sandbox Code Playgroud)
如您所见,该图标只是一个美元符号。我将那个灰色圆圈设置为背景。问题是我需要动态更改该背景的颜色。美元符号需要保持白色。我的问题是,有什么办法只能改变背景颜色吗?
另一个解决方案是使用该圆圈作为下一个图像视图,然后更改该图像视图的颜色。但是我认为对于这个问题可能会有更多“明确的解决方案。
感谢提示:)
android ×4
android-architecture-components ×1
android-room ×1
autosize ×1
imageview ×1
textview ×1