我需要显示启动布局文件,直到操作完成,然后才能更改为主布局。 这是一个例子。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
//Here app is copying files or something other it doesn't mater.
RelativeLayout panel = new RelativeLayout(this);
//Here is creating of main layout
setContentView(panel);
我需要在操作执行时显示启动画面(两个方法之间的setContentView)并且我需要设置主布局, 我试图以这种方式做,但它只显示黑屏,只显示主要布局(面板)。 问题出在哪儿 ? 请提前获得帮助。
答案 0 :(得分:0)
如果你没有在setContentView(R.layout.main)
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
handler = new Handler();
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
//Do some heavy stuff
return null;
}
@Override
public void onPostExecute(Void result){
handler.post(new Runnable(){
@Override
public void run(){
setContentView(R.layout.main);
}
});
}
}.execute();
}
编辑您可以查看此True SplashScreen
答案 1 :(得分:0)
以下是我的项目中的示例:
布局页面,您可以根据需要自定义进度条:
`
<ProgressBar
android:id="@+id/inquiry_progress"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:visibility="gone"
android:indeterminateDrawable="@drawable/loading_progress"></ProgressBar>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_horizontal|center_vertical"
android:id="@+id/panel_inquiry"
>
.....
</FrameLayout>
`
Java源代码:
私人ProgressBar progressBar;私人ProgressBar progressBar; private FrameLayout inquiryFrame;inquiryFrame =(的FrameLayout)findViewById(R.id.panel_inquiry); 进度=(进度条)findViewById(R.id.inquiry_progress);
为了显示启动画面/在后台工作
private void callService(){
progressBar.setVisibility(View.VISIBLE);
inquiryFrame.setVisibility(View.GONE);
new ServerReqAsync().execute(this
, ServiceConstants.getRequestList());
}
完成后台作业后,只需查看活动默认布局 progressBar.setVisibility(View.GONE); inquiryFrame.setVisibility(View.VISIBLE);
由于