小编Jos*_*ška的帖子

自动调整TextView不起作用(Android O)

我在支持库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

41
推荐指数
7
解决办法
2万
查看次数

OnNestedScroll - 有时不触发

当我滚动NestedScrollViewCoordinatorLayout. 我实现了这一点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

6
推荐指数
0
解决办法
1045
查看次数

分页库-具有多种视图类型的一个回收站

我正在使用项目中的所有Android体系结构组件(Room DB,Live Data等)。目前,我遇到一个问题,即RecyclerView应该使用从Room DB加载的数据并将其与Paging库一起显示。问题是存在多个数据类,这些数据类表示新闻源中的项目并存储在Room中,我需要在一个回收站中显示它们。

有什么办法可以轻松解决吗?例如,我可以创建所有这些类都将使用的接口吗?

android android-recyclerview android-room android-architecture-components android-jetpack

5
推荐指数
1
解决办法
1103
查看次数

如何更改可绘制设置为android:background的颜色?

我有一个看起来像这样的图标:我的约束布局中的图标

这是此图像视图的布局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 imageview android-layout android-drawable

3
推荐指数
1
解决办法
4724
查看次数