当前位置: 首页 > 知识库问答 >
问题:

Android.Support.Design.Widget.TabItem不能强制转换为Android.View.ViewGroup

邵俊才
2023-03-14

我在运行时得到以下错误。

E/AndroidRuntime:致命异常:main process:com.example.usamaakmal.trackpoint,pid:8774 Android.view.filflateException:二进制XML文件行0:Android.support.design.widget.tabItem不能强制转换为Android.view.viewgroup由:java.lang.classCastException:Android.support.design.widget.tabItem导致。java:872)在Android.view.layoutinflater.rinflateChildren(layoutinflater.java:832),在Android.view.layoutinflater.rinflateChildren(layoutinflater.java:872),在Android.view.layoutinflater.rinflateChildren(layoutinflater.java:872),在Android.view.layoutinflater.rinflateChildren(layoutinflater.java:832),在erdialog.java:20)在Android.support.v4.app.fragment.performCreateView(fragment.java:2354)在Android.support.v4.app.fragmentManagerimpl.moveToState(fragmentManager.java:1419)在Android.support.v4.app.fragmentManagerimpl.moveFragmentToExpectedState(fragmentManager.java:1740)在在Android.support.v4.app.fragmentmanagerimpl.executeops(fragmentmanager.java:2580)在Android.support.v4.app.fragmentmanagerimpl.executeopstogether(fragmentmanager.java:2367)在Android.support.v4.app.fragmentmanagerimpl.removereddantoperationsandexecute(fragmentmanager.java:2322)在dispatchMessage(handler.jav)a:98)在Android.os.looper.loop(looper.java:156)在Android.app.activitythread.main(activitythread.java:6523)在java.lang.reflect.Method.invoke(原生方法)在com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:832)在com.android.internal.os.zygoteinit.main(zygoteinit.java:832)

我的XML布局如下所示

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:text="Select Date And Time"
        android:textSize="20dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:id="@+id/tv_date_time_title"/>


    <android.support.design.widget.TabLayout
        android:id="@+id/date_time_tab_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/tv_date_time_title"
        android:layout_centerVertical="true">

        <android.support.design.widget.TabItem
            android:id="@+id/tab_date_item"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Date">

            <DatePicker android:id="@+id/dp_date_picker"></DatePicker>

        </android.support.design.widget.TabItem>

        <android.support.design.widget.TabItem
            android:id="@+id/tab_time_item"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Time">

            <TimePicker android:id="@+id/tp_time_picker"></TimePicker>
        </android.support.design.widget.TabItem>
    </android.support.design.widget.TabLayout>
</RelativeLayout>

我的定义对话框片段类如下所示

public class DateTimePickerDialog extends DialogFragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.date_time_picker_layout,container,false);
        return view;
    }
}

共有1个答案

张宣
2023-03-14

tabitem扩展视图。参考这里。因此,不能在TabItem中包含另一个视图。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:text="Select Date And Time"
        android:textSize="20dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:id="@+id/tv_date_time_title"/>


    <android.support.design.widget.TabLayout
        android:id="@+id/date_time_tab_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/tv_date_time_title"
        android:layout_centerVertical="true">

        <android.support.design.widget.TabItem
            android:id="@+id/tab_date_item"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Date" />

        <android.support.design.widget.TabItem
            android:id="@+id/tab_time_item"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Time" />
    </android.support.design.widget.TabLayout>
</RelativeLayout>
 类似资料: