2017-01-26 3 views
1

Ce que j'essaie ici est de cacher le FAB et le texte lorsque les résultats retournent une valeur/chaîne vide. Méthodes hideTextView() et setText() fonctionnent correctement, mais les FAB sont toujours affichés, qu'ils retournent une chaîne vide ou non.Cacher/afficher FAB sur uithread

if (args.getString("results").isEmpty()) { 
     activity.hideTextView(text); 
     activity.hideButton(fabButton); 
    } else { 
     activity.setText(text, args.getString("text")); 
     activity.showButton(fabButton); 

Voici les méthodes que j'ai utilisées pour afficher/masquer les TextViews et le FAB. J'ai aussi essayé floatingActionButton.hide() et floatingActionButton.show() mais il ne fonctionne toujours pas

public void hideButton(final FloatingActionButton floatingActionButton) { 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       floatingActionButton.setVisibility(View.GONE); 
       //floatingActionButton.hide() 
      } 
     }); 
    } 

    public void showButton(final FloatingActionButton floatingActionButton) { 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       floatingActionButton.setVisibility(View.VISIBLE); 
       //floatingActionButton.show(); 
      } 
     }); 
    } 

public void hideTextView(final TextView textView) { 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       textView.setVisibility(View.GONE); 
      } 
     }); 
    } 

public void setText(final TextView text, final String value) { 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       text.setText(value); 
      } 
     }); 
    } 

fabuleux

<android.support.design.widget.FloatingActionButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/fabButton" 
     android:layout_alignParentEnd="true" 
     android:layout_below="@+id/cover" 
     android:src="@drawable/ic_icon1" 
     app:backgroundTint="@color/colorAccent" 
     android:clickable="true" 
     android:layout_marginRight="210dp" 
     android:layout_marginTop="-28dp" 
     android:adjustViewBounds="false"/> 
+0

http://stackoverflow.com/questions/31269958/floatingactionbutton-doesnt-hide publier votre xml complet –

+0

qui fabuleux que vous utilisez Android ou builtin autre lib? –

+0

@SohailZahid intégré fab – BXUMZSE

Répondre

0

Il pourrait être dû à l'application: attribut layout_anchor dans votre code xml. L'ancre doit être changée avant de changer la visibilité. Essayez d'ajouter ce morceau de code à l'intérieur run:

CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) floatingActionButton.getLayoutParams(); 
p.setAnchorId(View.NO_ID); 
floatingActionButton.setLayoutParams(p); 
floatingActionButton.setVisibility(View.GONE); 
0

utilisation floatingActionButton.hide(); au lieu de floatingActionButton.setVisibility(View.GONE);

floatingActionButton.hide(); // to hide 
floatingActionButton.show();// to show 
+0

la question mentionne déjà que cela n'a pas fonctionné –