我想在反应应用程序中显示微调器而不在render()中编写一些代码,就像在android原生进程对话框中一样。
目前我将此行添加到我的render()
<Spinner visible={this.state.spinnerVisible} />
如果我想要显示或隐藏微调器,请更改状态spinnerVisible
。
这个方法只需要从任何地方调用java android。
public static void showProDialog(Context context, String text) {
try {
ProgressDialog progressDialog = null;
progressDialog = new ProgressDialog(context);
progressDialog.setCancelable(false);
progressDialog.setMessage(text);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setProgress(0);
progressDialog.show();
} catch (Exception e) {
e.printStackTrace();
}
}
有可能做这样的事吗?所以我不需要在任何地方维持状态。
答案 0 :(得分:3)
如果你不想在任何地方维持状态,你可以让Spinner保持自己的状态:
class Spinner extends Component {
show () {
this.setState({ visible: true })
}
hide () {
this.setState({ visible: false })
}
}
在根视图中添加一个Spinner
:
export const spinner = React.createRef()
class MyApp extends Component {
render () {
return (
<View>
{/* your app content */}
<Spinner ref={spinner} />
</View>
}
}
如果您想要显示微调器,只需import { spinner } from './MyApp.js'
并调用spinner.show()
: