小编Fel*_*hos的帖子

在TabLayout下面添加一行

我在尝试在下方添加一条线时遇到了麻烦TabLayout,但它必须在选择线后面.应该是这样的:

为例

我已经尝试添加自定义视图,但每个标签内部都有一些边距,所以没有解决.

有任何想法吗?

这就是我现在所得到的:

current_tablayout

这是我如何在XML上添加它:

<android.support.design.widget.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    app:tabBackground="@color/white"
    app:tabIndicatorColor="@color/colorAccent"
    app:tabTextColor="@color/white"/>
Run Code Online (Sandbox Code Playgroud)

这就是我通过代码做的事情:

private void configureTabLayout() {
    TabLayout.Tab tabHome = mTabLayout.newTab().setIcon(R.drawable.ic_home_cinza);
    TabLayout.Tab tabEmprestimos = mTabLayout.newTab().setIcon(R.drawable.ic_emprestimos_cinza);
    TabLayout.Tab tabPersonal = mTabLayout.newTab().setIcon(R.drawable.ic_usuario_cinza);

    View root = mTabLayout.getChildAt(0);
    if (root instanceof LinearLayout) {
        ((LinearLayout) root).setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
        GradientDrawable drawable = new GradientDrawable();
        drawable.setColor(getResources().getColor(R.color.silver));
        drawable.setSize(2, 1);
        ((LinearLayout) root).setDividerPadding(10);
        ((LinearLayout) root).setDividerDrawable(drawable);
    }

    mTabLayout.addTab(tabHome);
    mTabLayout.addTab(tabEmprestimos);
    mTabLayout.addTab(tabPersonal);
    mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
}
Run Code Online (Sandbox Code Playgroud)

xml android tabbar android-tablayout

9
推荐指数
1
解决办法
5712
查看次数

RxJava 2/Retrofit 2 - NetworkOnMainThreadException

我需要执行请求,如果我的令牌过期,我需要刷新它并重试请求.

这就是我尝试这样做的方式,此刻我可以刷新令牌,但它会抛出一个NetworkOnMainThreadException.它完成了请求,更新令牌并到达日志,但是这个例外它杀了我.我怎么能避免这种情况?

    public Observable<Estabelecimento> listarEstabelecimentos() {
    return Observable.defer(this::getListarEstabelecimentoObservable)
            .retryWhen(throwableObservable -> throwableObservable.flatMap(
                    throwable -> {
                        if (throwable instanceof UnauthorizedException) {
                            return mRequestManager.getTokenObservable(AutoAtendimentoApplication.getContext())
                                    .doOnNext(response -> /* log stuff */)
                                    .flatMap((Function<AuthResponse, ObservableSource<?>>) response2 ->
                                            getListarEstabelecimentoObservable()
                                                    .doOnNext(estabelecimento ->
                                                            /* log stuff */)
                                                    )
                                    );
                        }
                        return Observable.error(throwable);
                    }));
}
Run Code Online (Sandbox Code Playgroud)

NetWorkErrorHandler:

    public <T> T  processError(Response<T> response ) {
    switch (response.code()) {
        case 401:
            throw new UnauthorizedException();
        default:
            return response.body();
    }
}
Run Code Online (Sandbox Code Playgroud)

令牌:

       private Observable<AuthResponse> getToken(Context context,
                                          @GrantType.GrantTypeDef String grantType, @Nullable String refreshToken) {

    SessionManager sessionManager …
Run Code Online (Sandbox Code Playgroud)

android rx-java retrofit retrofit2 rx-java2

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

如何在 Jetpack Compose 中使用 AnnotatedString 设置 LineHeight

我现在正在使用 AnnotedStrings 创建具有两种不同文本样式的文本: 图像上的标签显示 1.26 千瓦文本

我正在使用 SpanStyle 设置此标签。如何以这种方式设置行高?因为SpanStyle缺少这个属性。

android android-jetpack-compose android-compose-textfield

4
推荐指数
1
解决办法
1479
查看次数