私はサーバーへの私の要求が応答を待っている間、プレローダーを表示しようとしています
しかし、プリローダーを setVisibility(View.GONE);
で非表示にしようとすると、(他のコンテンツが表示されても)非表示にならず、
プリローダーを削除し、他のコンテンツを直接表示する関数を実行すると(非同期要求のコールバックではなく動作します)
私のレイアウトは次のようになります(私は android:text
のプロパティなどの無関係なものをすべて削除しました)。
[使用しているローダーは、私が作成したカスタムビューであることに注意してください(問題と関連があるかどうかわかりません)
<button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_dance"
/>
<button
android:id="@+id/another_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
私が使用しているローダーはカスタムビューであることに注意してください(問題と何か関係があるかどうかわかりません)
私のJavaコードは:
...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_page);
init();
setLoading(true);
loadData();
}
private void init(){
preloader = (Loader) findViewById(R.id.preloader);
buttonsArea= (LinearLayout) findViewById(R.id.buttonsArea);
}
private void loadData(){
app.getManager().app_init(new OnAppInfoResponse(){
@Override
public void onResponse(boolean success) {
//this method runs on UI Thread through Handler
setLoading(false);
}
});
}
private void setLoading(boolean loading) {
this.loading = loading;
if(loading){
buttonsArea.setVisibility(View.GONE);
preloader.setVisibility(View.VISIBLE);
} else {
buttonsArea.setVisibility(View.VISIBLE);
preloader.setVisibility(View.GONE);
}
}
編集:
さらに怪我する:
buttonsArea.setVisibility(View.VISIBLE);
行を削除すると、プリローダーは非表示になります。
どうもありがとうございました!!