peng8350 / jptabbar Goto Github PK
View Code? Open in Web Editor NEWTabBar For Android ,Android navigation bar at the bottom of a cool, accord with the design specification of the Volkswagen APP
License: Apache License 2.0
TabBar For Android ,Android navigation bar at the bottom of a cool, accord with the design specification of the Volkswagen APP
License: Apache License 2.0
今天在简书上看到了这个项目,感觉很棒。不知道能否使用IconFont作为图标使用?
谢谢。
请问如何现实中间的加号
如题,场景是加载了四个fragment,发现来回切换会重新触发初始化布局方法,导致view布局出错。请问对这个问题有解决方法吗?还是哪里缺少设置?谢谢。
文字距底部的距离 如何设置?
``AnimationType AnimateType = AnimationType.values()[mAttribute.getInt(R.styleable.JPTabBar_TabAnimate, AnimationType.FLIP.ordinal())];
tabBar.setTitles("首页","订单","我的").setNormalIcons(R.drawable.ic_gradienttabstrip_home_normal,R.drawable.ic_gradienttabstrip_order_normal,R.drawable.ic_gradienttabstrip_account_normal)
.setSelectedIcons(R.drawable.ic_gradienttabstrip_home_selected,R.drawable.ic_gradienttabstrip_order_selected,R.drawable.ic_gradienttabstrip_account_selected).generate();
viewPager.setAdapter(adapter);
tabBar.setContainer(viewPager);
tabBar.setDismissListener(this);
//显示圆点模式的徽章
//设置Badge消失的代理
tabBar.setTabListener(this);
如何设置底部的某一个tab,使动态的显示隐藏;
mTabbar.setSelectTab(1);这样设置的
比如 TabIconSize 这个目前只能在xml设置,没办法代码设置,目前需求需要根据条件动态初始化图标大小.
其他属性目前没用到,不过如果可以的话能否尽量其他的xml设置的属性也增加对应的方法.
@peng8350
如果不设置title,还是显示了title文字的位置。
找了可以设置 setTabMargin setIconSize 图片被拉升了。
在Fragment内的Fragment里使用注解不生效,但实用代码设置可以
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.haorui.myjptable/com.haorui.myjptable.MainActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class com.jpeng.jptabbar.JPTabBar
Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class com.jpeng.jptabbar.JPTabBar
您给看看啊
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:jp="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.haorui.myjptable.MainActivity">
<com.jpeng.jptabbar.JPTabBar
android:id="@+id/tabbar"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="#fff"
jp:TabTextSize="12sp"
jp:TabMiddleIcon="@mipmap/ic_launcher"
/>
public class MainActivity extends AppCompatActivity {
@titles
private static final String[] mTitles = {"页面一","页面二","页面三","页面四"};
@SeleIcons
private static final int[] mSeleIcons = {R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher};
@NorIcons
private static final int[] mNormalIcons = {R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
repositories {
jcenter()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.0'
testCompile 'junit:junit:4.12'
compile 'com.jpeng:JPTabBar:1.2.0'
}
请问楼主tab数字没有拖动效果,红米note3真机调试的,这个问题解决了吗?
我想点击某个tab判断用户是否登录,没登录直接去登录页面。没有这个回调。是否可以更新下
显示的位置目前看到是根据BADGEHORIZONAL_MARGIN参数设置距离右边距的位置,一般badge都是显示在图标右上角的吧.tab宽度是自适应的,在不同分辨率的情况下,根据右边来计算会让badge位置在不同分辨率下有区别.所以显示位置能否改成根据图标来中心位置来计算偏移量.
<root>
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
/>
</android.support.design.widget.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="test1" />
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
</root>
在第一个fragment中使用如上布局,则第三个和第四个fragment点击时导航栏的文字会消失,整个底部只有图标
,不知道是不是我的问题,还请赐教
add touch event listener to change resource is fail. Is there are any way to change it. thanks
调用方法setSelectTab(0);不会正确显示选中图标,调用setSelectTab(1);就能正确显示
mAttribute存在部分机型被recycled后仍被调用的问题,建议用后直接recycle掉,不要放到onAttachedToWindow里
Thanks for your awesome library, it's works in almost all device. but i have a problem when it run on Asus Fonepad 8 (Lollipop 5.1.0) it's crash and said NullPointerException at all of tabbar initialize
传入true以后,触摸到那个角标,就消失了,没有那种拖拽的感觉
请问下从tab3页面跳转到某个Activity页 然后finish掉 回到主页怎么选中tab1页面?
logcat
Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class com.jpeng.jptabbar.JPTabBar
`
<com.jpeng.jptabbar.JPTabBar
android:id="@+id/jptabbar"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@color/white"
app:TabMiddleBottomDis="14dp"
app:TabMiddleHMargin="36dp"
app:TabMiddleIcon="@mipmap/release2"
app:TabTextSize="12sp" />
<FrameLayout
android:id="@+id/fl_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
需求总是那么奇葩,按道理说中间凸起的就是要跳转去新的界面,可是需求总是喜欢另类,非要把凸起的也当作一个tab 来弄。
Caused by: java.lang.RuntimeException: Cannot make calls to a recycled instance!
at android.content.res.TypedArray.getColor(TypedArray.java:459)
at com.jpeng.jptabbar.JPTabBar.initFromAttribute(JPTabBar.java:170)
at com.jpeng.jptabbar.JPTabBar.generate(JPTabBar.java:506)
机型:
Android: 8.1.0
Manufacturer: HUAWEI
Model: CLT-AL00
这个是用户使用时触发奔溃的日志,也就这个安卓8.1.0的触发了
是否tab为奇数个时,不显示中间按钮
2020-07-30 10:31:25.433 28258-28258/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.viking, PID: 28258
java.lang.RuntimeException: Unable to start activity ComponentInfo{com./com.shop.activity.MainActivity}: android.view.InflateException: Binary XML file line #19: Binary XML file line #19: Error inflating class com.jpeng.jptabbar.JPTabBar
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2983)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3061)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1747)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6842)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
Caused by: android.view.InflateException: Binary XML file line #19: Binary XML file line #19: Error inflating class com.jpeng.jptabbar.JPTabBar
Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class com.jpeng.jptabbar.JPTabBar
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.view.LayoutInflater.createView(LayoutInflater.java:647)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
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 androidx.appcompat.app.AppCompatDelegateImpl.B(SourceFile:4)
at androidx.appcompat.app.AppCompatActivity.setContentView(SourceFile:1)
at com.viking.shop.activity.MainActivity.onCreate(SourceFile:2)
at android.app.Activity.performCreate(Activity.java:7066)
at android.app.Activity.performCreate(Activity.java:7057)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1216)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2931)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3061)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1747)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6842)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
Caused by: com.jpeng.jptabbar.TabException: you must set the Titles Annotation and NormalIcon Annotation for the JPTabbar!!!
at com.jpeng.jptabbar.JPTabBar.d(SourceFile:4)
at com.jpeng.jptabbar.JPTabBar.i(SourceFile:30)
at com.jpeng.jptabbar.JPTabBar.h(SourceFile:4)
at com.jpeng.jptabbar.JPTabBar.(SourceFile:4)
中间按钮没突出啊
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.