我正在尝试使用图标制作滑动标签。我使用谷歌的slidingtablayout.java和slidingtabstrip.java
编写了代码我遇到的问题是我的应用程序在我的手机中崩溃(在kitkat和棒棒糖上测试)。但是,我不知道为什么平板电脑支持该应用程序,它在我的平板电脑(ICS),平板电脑模拟器和蓝色堆栈上运行完美。
logcat的:
06-04 03:45:42.970 3254-3254/com.easyaccom.abhishek.slidingtabswiper E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.easyaccom.abhishek.slidingtabswiper, PID: 3254
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.easyaccom.abhishek.slidingtabswiper/com.easyaccom.abhishek.slidingtabswiper.MainActivity}: java.lang.UnsupportedOperationException: Can't convert to color: type=0x1
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x1
at android.content.res.TypedArray.getColor(TypedArray.java:404)
at android.app.Activity.onApplyThemeResource(Activity.java:3683)
at android.view.ContextThemeWrapper.initializeTheme(ContextThemeWrapper.java:140)
at android.view.ContextThemeWrapper.setTheme(ContextThemeWrapper.java:85)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2271)
这是我的相同实现。随着布局。 minsdk是11,目标是22.请让我知道问题的原因。
除了Mainactivity.java类,我有SlidingTabLayout.java和SlidingTabStrip.java
activity_main.xml:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.easyaccom.abhishek.slidingtabswiper.MainActivity">
<com.easyaccom.abhishek.slidingtabswiper.SlidingTabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.v4.view.ViewPager android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
自定义标签:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp"
android:id="@+id/tabController">
<ImageView
android:id="@+id/tabImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
<TextView android:id="@+id/tabText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom|center"/>
fragment_my.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/position"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text=" The page Number is 1"
android:textColor="@color/colorPrimaryText"
android:textSize="20sp"/>
colors.xml(我认为logcat显示了我的一种颜色问题):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#03A9F4</color>
<color name="colorPrimaryDark">#0288D1</color>
<color name="colorPrimaryLight">#B3E5FC</color>
<color name="colorAccent">#FF5722</color>
<color name="colorHighlight">#B6B6B6</color>
<color name="colorPrimaryText">#212121</color>
<color name="colorSecondaryText">#727272</color>
<color name="colorDivider">#B6B6B6</color>
<color name="colorba">#FFFFFF</color>
</resources>
答案 0 :(得分:2)
好的,这个问题的答案非常简单。我不知道是什么原因,但android studio默认只为820dp宽设备(平板电脑)添加了colors.xml。所以手机没有colors.xml。它在编译时没有给我任何错误,因为对于平板电脑而不是手机已经有了colors.xml。就像我添加了另一个同名的colors.xml一样,问题也解决了。我认为android studio需要解决这个问题,可能会在下次更新中解决。
感谢。
答案 1 :(得分:0)
问题似乎是您正在设置的颜色之一。不幸的是,logcat图像被截断,但异常类型是java.lang.UnsupportedOperationException
。
编辑:尝试注释掉(或删除)此部分以查看它是否是罪魁祸首:
mTabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer(){
@Override
public int getIndicatorColor(int position) {
return getResources().getColor(R.color.colorAccent);
}
});`