2016-06-08 74 views
0

我有一个ImageViewTextView它上面显示“查看专辑”。我正在使用Picasso在此ImageView内加载图像。我想隐藏这TextView并禁用其点击,直到图像加载在ImageView。如果图像没有下载,然后我隐藏TextViewTextView显示,并重定向到另一个屏幕单击时。我试着用TextView点击禁用和隐藏,但仍然是点击工作 - Android

     <TextView 
          android:id="@+id/txtViewAlbum" 
          android:layout_width="fill_parent" 
          android:layout_height="25dp" 
          android:layout_gravity="center|bottom" 
          android:background="#435FA7" 
          android:clickable="false" 
          android:gravity="center" 
          android:paddingRight="4dp" 
          android:text="View Album" 
          android:textColor="#ffffff" 
          android:textSize="12sp" 
          android:visibility="gone" /> 

txtViewAlbum = (TextView) view.findViewById(R.id.txtViewAlbum); 
    eventImage = (ImageView) view.findViewById(R.id.imgDetail); 
    txtViewAlbum.setVisibility(View.GONE); 
    eventImage.setClickable(false); 
    txtViewAlbum.setClickable(false);` 

在首位。

并且使用图像加载完成:

Picasso picasso = Picasso.with(getActivity()); 
    picasso.setDebugging(true); 
    picasso.setIndicatorsEnabled(false); 
    picasso.load(downloadPath + thumbImg).placeholder(R.drawable.no_image) 
      .error(R.drawable.no_image).into(eventImage, new Callback() { 
       @Override 
       public void onSuccess() { 
        txtViewAlbum.setVisibility(View.VISIBLE); 
        eventImage.setClickable(true); 
        txtViewAlbum.setClickable(true); 

       } 

       @Override 
       public void onError() { 
        Log.d("Error...", "picasso load error"); 
        Picasso.with(getActivity()).load(R.drawable.no_image) 
          .into(eventImage); 
        txtViewAlbum.setVisibility(View.GONE); 
        eventImage.setClickable(false); 
        txtViewAlbum.setClickable(false); 
       } 
      }); 

但直到图像加载TextView点击正在为像2-3秒。我想禁用它。任何帮助将不胜感激。

+0

你尝试过的setEnabled(假)? – Hades

+0

是的。这是不工作 – Jas

+0

禁用和隐藏之前加载图像 –

回答

0

尝试使用这样的:

mTextView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        // here disable and hide your view 
       } 
      }); 
      // here load your image with on error loading maybe restore views to be visible again 
     } 
    });