android布局不显示

Posted

技术标签:

【中文标题】android布局不显示【英文标题】:android layout not displayed 【发布时间】:2015-08-01 18:58:43 【问题描述】:

我无法显示主要活动的布局:

我用 ImageView 创建了一个 ActivityA。

在 onCreate() 中,我启动了一个 AsyncTask,它从 Internet 检索内容,并打开一个 ActivityB。

当我启动我的应用程序时,它会立即显示 ActivityB。

public class ActivityA extends Activity 
    @Override
    protected void onCreate(Bundle savedInstanceState) 

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MyTask mytask = new MyTask();
        mytask.execute();

    

我的 MainActivity xml 文件如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/loadingPanel"
    android:layout_
    android:layout_
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/home_page"
        android:layout_
        android:layout_
        android:src="@drawable/ic_home_page" />

    <ProgressBar
        android:id="@+id/marker_progress"
        style="?android:attr/progressBarStyle"
        android:layout_
        android:layout_
        android:layout_gravity="center_vertical|center_horizontal"
        android:indeterminate="true" />

</RelativeLayout>

ProgressBar 用于显示 AsyncTask 的加载过程。

感谢您的帮助

【问题讨论】:

显示您开始活动 B 的位置/方式。最有可能直接在调用任务之后 显示 AsyncTask 代码。 哪个Activity不显示布局? A 还是 B? @Joseph82 没有显示的是 ActivityA。 @codeMagic,我在onPostExecute()中启动ActivityB,在doInBackground()中执行网络调用后 【参考方案1】:
public class ActivityA extends Activity 
        @Override
        protected void onCreate(Bundle savedInstanceState) 
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            MyTask mytask = new MyTask();
            mytask.execute();
        
    

    private class MyTask extends AsyncTask<String, String, String> 

        @Override
        protected String doInBackground(String... params) 
            // code for retrieve contents from Internet
        

        @Override
        protected void onPostExecute(String result) 
            // cancel ProgressBar and start activity B here like
            Intent i = new Intent(A.this, B.class);
            startActivity(i);
        

        @Override
        protected void onPreExecute() 

            // showing ProgressBar
        

    

别忘了提到 A 活动作为启动器。 我希望它能帮助你解决这个问题。

【讨论】:

谢谢您的回答...这就是我实际上正在做的...但它似乎仍然不起作用...会不会是临时性的问题? Asynctask 执行得如此之快,以至于我们看不到第一个布局。

以上是关于android布局不显示的主要内容,如果未能解决你的问题,请参考以下文章

android 显示部分布局然后上滑执行动画显示全部的view,再下滑回到初始状态怎么实现

Android Studio 不显示布局预览

Android Studio 不显示布局预览(也没有错误发生)

android里怎么实现在代码中把一个布局给隐藏掉 ?

markdown Android布局背景图片不显示的奇怪问题

无法加载布局:设计师不支持android版本