在片段中使用cardView时,布局inflater会发生错误吗?

时间:2015-06-24 06:28:28

标签: android

程序运行正常,但是当我打开这个片段时,应用程序崩溃了。

HomeFragment.java

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    TextView homeFeatured = (TextView) container.findViewById(R.id.featured_home);
    TextView homeFeaturedViewAll = (TextView) container.findViewById(R.id.featured_view_all_home);
    TextView homeNewReleases = (TextView) container.findViewById(R.id.new_releases_home);
    TextView homeNewReleasesViewAll = (TextView) container.findViewById(R.id.new_releases_view_all_home);
    TextView homeTopReads = (TextView) container.findViewById(R.id.top_reads_home);
    TextView homeTopReadsViewAll = (TextView) container.findViewById(R.id.top_reads_view_all_home);

    return inflater.inflate(R.layout.fragment_home, container, false);

}

fragment_home.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.pratilipi.www.pratilipi.HomeFragment">

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" >
<!-- TODO: Update blank fragment layout -->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="#808080"
    android:id="@+id/featured_home_layout"
    android:elevation="2dp">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/featured_home"
        android:text="@string/home_featured"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:textSize="16dp"
        android:textColor="#ffffff"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/featured_view_all_home"
        android:text=">"
        android:gravity="right"
        android:textSize="15dp"
        android:textColor="#ffffff"
        android:layout_centerVertical="true"
        android:layout_marginRight="10dp"/>
    </RelativeLayout>

            <android.support.v7.widget.CardView
                android:layout_width="85dp"
                android:layout_height="140dp"
                android:layout_gravity="center_horizontal">
                <TextView
                    android:text="Basic CardView"
                    android:layout_marginTop="0dp"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:layout_centerVertical="true"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentEnd="true" />
            </android.support.v7.widget.CardView>

    </RelativeLayout>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="400dp">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/new_releases_home_layout"
            android:background="#808080"
            android:elevation="2dp">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/new_releases_home"
                android:text="@string/new_releases_home"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:textSize="16dp"
                android:textColor="#ffffff"
                />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/new_releases_view_all_home"
                android:text=">"
                android:gravity="right"
                android:textSize="15dp"
                android:textColor="#ffffff"
                android:layout_centerVertical="true"
                android:layout_marginRight="10dp"/>

        </RelativeLayout>

                </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="400dp">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/top_reads_home_layout"
            android:background="#808080"
            android:elevation="2dp">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/top_reads_home"
                android:text="@string/home_top_reads"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:textSize="16dp"
                android:textColor="#ffffff"
                />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/top_reads_view_all_home"
                android:text=">"
                android:gravity="right"
                android:textSize="15dp"
                android:textColor="#ffffff"
                android:layout_centerVertical="true"
                android:layout_marginRight="10dp"/>

        </RelativeLayout>

    </RelativeLayout>

</LinearLayout>
</ScrollView>
</LinearLayout>

在错误日志中,它指向onCreateView return语句行。没有卡片视图,应用程序正常工作。有什么方法可以解决这个问题吗? 我该怎么做才能解决这种类型的应用程序崩溃。非常感谢。

3 个答案:

答案 0 :(得分:1)

您是否在gradle文件中导入了卡片库?

compile&#39; com.android.support:cardview-v7:21。+&#39;

添加此行后,同步您的gradle项目。

答案 1 :(得分:0)

你必须先扩大布局。

View view = inflater.inflate(R.layout.fragment_home, container, false);

然后使用

  TextView homeFeatured = (TextView) view.findViewById(R.id.featured_home);

和剩下的代码..

答案 2 :(得分:0)

我导入了gradle文件并且有效。