活动开始时,CardView不会显示在recyclerview内?

时间:2015-08-01 05:30:09

标签: android

这是我的代码

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="#000000">

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#000000"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="8dp"
    />

grid.xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<android.support.v7.widget.CardView

    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            />
</android.support.v7.widget.CardView>

在MainActivity中创建onCreate

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getpopularmovies popularmovies= new getpopularmovies();
    popularmovies.execute(); //AsyncTask
    mRecyclerView = (RecyclerView)findViewById(R.id.recycler_view);
    mRecyclerView.setHasFixedSize(true);

    mLayoutManager = new GridLayoutManager(this,2);
    mRecyclerView.setLayoutManager(mLayoutManager);

    mAdapter = new GridAdapter(this);
    mRecyclerView.setAdapter(mAdapter);

}

当我运行应用程序时,我看到黑色背景,但我看不到带有图像的卡片。但当我来回转动手机屏幕时,我看到了卡片。唯一的问题是应用程序的开始。我该如何解决这个问题?提前谢谢。

1 个答案:

答案 0 :(得分:2)

我认为您应该使用LinearLayoutManager llm = new LinearLayoutManager(this);代替mLayoutManager = new GridLayoutManager(this,2);

更新:我试过GridLayoutManager(this,2);,它仍然可以使用。也许,您应该在填充数据(asynctask)后执行setAdapter(adapter);。您可以尝试onPostExecute