在故障回调中改进内部设置textview可见性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在故障回调中改进内部设置textview可见性相关的知识,希望对你有一定的参考价值。

我试图根据Retrofit返回的响应来设置Textview的可见性。 onFailure,我将可见性设置为可见的tv_no_cat.setVisibility(View.VISIBLE);但是,这不起作用。我正在使用ContentLoadingProgressBar做同样的事情并且它正常运作。这是我的代码

public void onFailure(Call<List<MoviesCategory>> call, Throwable t) {
            tv_no_cat.setVisibility(View.VISIBLE); ////This does not work
            Boolean x = tv_no_cat.getVisibility() == View.VISIBLE;

            Toast.makeText(getContext(), "Network Error "+x, Toast.LENGTH_LONG).show();    //This shows true
            tv_no_cat.setTextColor(Color.BLUE);
            videoLoadingPb.setVisibility(View.GONE); //This works
        }

我的猜测是我试图设置来自另一个线程的UI线程上的textview。如果是这样,为什么它适用于ContentLoadingProgressBar

这是我的2个视图的xml

<android.support.v4.widget.ContentLoadingProgressBar
        android:id="@+id/loading_categories"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center"
        android:visibility="visible" />
    <TextView
        android:layout_below="@id/loading_categories"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="No Movie Category Found"
        android:id="@+id/tv_no_cat"
        android:textAlignment="center"
        android:layout_gravity="bottom"
        android:visibility="gone"
        />

任何帮助我如何设置textview可见性到VISIBLE是受欢迎的。

答案

来自docs

在Android上,回调将在主线程上执行......

所以这不是你的问题,我怀疑它与Retrofit有关,特别是当它适用于另一种观点时。请确保您的xml设计没有问题,并且没有其他方法会影响此视图的可见性。

另一答案

在Oncreate或其他地方注册Textview?你在片段活动中使用这段代码?

请检查一下......

tv_no_cat =(TextView)findViewById(R.id.tv_no_cat);(Inside Activity)

tv_no_cat =(TextView)rootView.findViewById(R.id.tv_no_cat);(Inside Fragment)

以上是关于在故障回调中改进内部设置textview可见性的主要内容,如果未能解决你的问题,请参考以下文章

可以将TextView放在RadioGroup中。但是,这是好的做法吗?

在android中设置TextView的可见性不起作用

ListView 使 textview 在超出屏幕可见性时可见

在 AlertDialog 正按钮上更改 textView 的可见性

如何设置滚动视图内并包含两个 TextView 的线性布局的可见性消失?

更改 android studio 中的 textview 可见性