2017-01-26 6 views
1

Was ich hier versuche, ist das FAB und den Text ausblenden, wann immer Ergebnisse einen leeren Wert/String zurückgibt. Die Methoden hideTextView() und setText() funktionieren einwandfrei, aber der FAB wird immer noch angezeigt, egal ob eine leere Zeichenfolge zurückgegeben wird oder nicht.Ausblenden/Zeigen FAB auf uithread

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

Unten sind die Methoden, die ich zum Anzeigen/Verbergen der TextViews und der FAB verwendet. Ich habe auch versucht floatingActionButton.hide() und floatingActionButton.show() aber es funktioniert immer noch nicht

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); 
      } 
     }); 
    } 

fab

<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 posten Sie Ihre vollständigen xml –

+0

, die Sie fab verwenden android builtin oder eine andere lib? –

+0

@SohailZahid eingebaute Fab – BXUMZSE

Antwort

0

Es könnte aufgrund der App sein: layout_anchor Attribut in Ihrem XML-Code. Der Anker muss geändert werden, bevor die Sichtbarkeit geändert wird. Versuchen Sie, dieses Stück Code in Lauf:

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

Verwendung floatingActionButton.hide(); statt floatingActionButton.setVisibility(View.GONE);

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

Die Frage erwähnt bereits, dass dies nicht funktioniert hat –