Anj*_*tal 7 android android-tablayout
我正在尝试实现 Tab Layout 但不幸的是收到此错误,
我已经添加了我的 xml 代码,任何人都可以帮助弄清楚我做错了什么。
以下是我得到的错误日志
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.vvdntech.design_material/com.example.vvdntech.design_material.LoggedIn}: android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class com.google.android.material.tabs.TabLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class com.google.android.material.tabs.TabLayout
at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:467)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.example.vvdntech.design_material.LoggedIn.onCreate(LoggedIn.java:17)
at android.app.Activity.performCreate(Activity.java:6582)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2532)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class com.google.android.material.tabs.TabLayout
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:467)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.example.vvdntech.design_material.LoggedIn.onCreate(LoggedIn.java:17)
at android.app.Activity.performCreate(Activity.java:6582)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.material.tabs.TabLayout" on path: DexPathList[[zip file "/data/app/com.example.vvdntech.design_material-1/base.apk", zip file "/data/app/com.example.vvdntech.design_material-1/split_lib_dependencies_apk.apk",
Run Code Online (Sandbox Code Playgroud)
这是我拥有的 xml 文件
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LoggedIn">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/pager">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabItem
android:icon="@drawable/b"
android:text="tab1" />
<com.google.android.material.tabs.TabItem
android:icon="@drawable/b"
android:text="tab2"/>
<com.google.android.material.tabs.TabItem
android:icon="@drawable/b"
android:text="tab3"/>
</com.google.android.material.tabs.TabLayout>
</android.support.v4.view.ViewPager>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
主要活动我还没有添加任何东西。这完全是练习,所以如果代码中有任何小错误,请告诉。
编辑:我还附上了我的 gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.vvdntech.design_material"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:design:28.0.0-alpha3'
}
Run Code Online (Sandbox Code Playgroud)
& https://material.io/develop/android/components/tab-layout/我正在使用此链接,其中选项卡位于视图寻呼机内。
提前谢谢
错误的根源com.google.android.material.tabs.TabLayout不是来自支持库,而是来自@Doflaminhgo 指出的材料设计库。
dependencies {
// ...
implementation 'com.google.android.material:material:1.0.0'
// ...
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么 Android参考文档描述了 Material Components 的使用,而没有明显提到在该部分的任何地方可以找到它。
这有点晚了,但对于将来可能会对此进行研究的任何人:
您需要使用的包不是 com.google.android.material.tabs(虽然它是在材料设计网站中使用的),但它是android.support.design.widget(用于 TabLayout 和 TabItem)。这是一个示例用法:
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TabItem
android:icon="@android:drawable/ic_menu_help"
android:text="Active"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<android.support.design.widget.TabItem
android:icon="@android:drawable/ic_menu_help"
android:text="History"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<android.support.design.widget.TabItem
android:icon="@android:drawable/ic_menu_help"
android:text="Ignored"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
</android.support.design.widget.TabLayout>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18964 次 |
| 最近记录: |