Hide/show 用户界面线程上的 FAN
Hide/show FAB on uithread
我在这里尝试的是在结果 returns 为空 value/string 时隐藏 FAB 和文本。方法 hideTextView() 和 setText() 工作正常,但 FAB 仍然总是显示,无论它 returns 是否为空字符串。
if (args.getString("results").isEmpty()) {
activity.hideTextView(text);
activity.hideButton(fabButton);
} else {
activity.setText(text, args.getString("text"));
activity.showButton(fabButton);
以下是我用于 showing/hiding TextView 和 FAB 的方法。我也试过 floatingActionButton.hide()
和 floatingActionButton.show()
但还是不行
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);
}
});
}
很棒
<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"/>
使用floatingActionButton.hide();
代替floatingActionButton.setVisibility(View.GONE);
floatingActionButton.hide(); // to hide
floatingActionButton.show();// to show
这可能是由于您的 xml 代码中的 app:layout_anchor 属性造成的。更改可见性之前必须更改锚点。尝试在 运行:
中添加这段代码
CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) floatingActionButton.getLayoutParams();
p.setAnchorId(View.NO_ID);
floatingActionButton.setLayoutParams(p);
floatingActionButton.setVisibility(View.GONE);
我在这里尝试的是在结果 returns 为空 value/string 时隐藏 FAB 和文本。方法 hideTextView() 和 setText() 工作正常,但 FAB 仍然总是显示,无论它 returns 是否为空字符串。
if (args.getString("results").isEmpty()) {
activity.hideTextView(text);
activity.hideButton(fabButton);
} else {
activity.setText(text, args.getString("text"));
activity.showButton(fabButton);
以下是我用于 showing/hiding TextView 和 FAB 的方法。我也试过 floatingActionButton.hide()
和 floatingActionButton.show()
但还是不行
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);
}
});
}
很棒
<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"/>
使用floatingActionButton.hide();
代替floatingActionButton.setVisibility(View.GONE);
floatingActionButton.hide(); // to hide
floatingActionButton.show();// to show
这可能是由于您的 xml 代码中的 app:layout_anchor 属性造成的。更改可见性之前必须更改锚点。尝试在 运行:
中添加这段代码CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) floatingActionButton.getLayoutParams();
p.setAnchorId(View.NO_ID);
floatingActionButton.setLayoutParams(p);
floatingActionButton.setVisibility(View.GONE);