Comments (2)
Hello @akshay2211
I covert the all kotlin code to java. with some effort i did that,
Java Code is
MainActivity.java Class
package com.fxn.bubbletabbarapp.java;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentManager;
import com.fxn.BubbleTabBar;
import com.fxn.OnBubbleClickListener;
import com.fxn.ariana.ArianaBackgroundListener;
import com.fxn.bubbletabbarapp.R;
import java.util.ArrayList;
import org.jetbrains.annotations.Nullable;
public class MainActivity extends AppCompatActivity {
public AppCompatImageView iv;
private PresentationViewPager viewpager;
public BubbleTabBar tabBar;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager windowManager = this.getWindowManager();
windowManager.getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
Log.e("height", "-> " + height);
Log.e("width", "-> " + width);
Window window = this.getWindow();
View view = window.getDecorView();
view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
iv = (AppCompatImageView) findViewById(R.id.iv);
viewpager = (PresentationViewPager) findViewById(R.id.viewpager);
tabBar = (BubbleTabBar) findViewById(R.id.bubbleTabBar);
tabBar.addBubbleListener(new OnBubbleClickListener() {
@Override
public void onBubbleClick(int id) {
switch (id) {
case R.id.home:
viewpager.setCurrentItem(0);
break;
case R.id.log:
viewpager.setCurrentItem(1);
break;
case R.id.doc:
viewpager.setCurrentItem(2);
break;
case R.id.setting:
viewpager.setCurrentItem(3);
}
}
});
tabBar.setupBubbleTabBar(viewpager);
viewpager.setDurationScroll(1000);
FragmentManager fragmentManager = getSupportFragmentManager();
ViewPagerAdapter adapter = new ViewPagerAdapter(fragmentManager);
ArrayList<String> list = new ArrayList<String>();
list.add("Home");
list.add("Logger");
list.add("Documents");
list.add("Settings");
adapter.setList(list);
viewpager.setAdapter(adapter);
viewpager.addOnPageChangeListener(new ArianaBackgroundListener(
getColors(),
iv,
viewpager
));}
private int[] getColors() {
return new int[]{
ContextCompat.getColor(this, R.color.home),
ContextCompat.getColor( this, R.color.logger),
ContextCompat.getColor( this, R.color.documents),
ContextCompat.getColor( this, R.color.settings),
ContextCompat.getColor( this, R.color.home)
};
}}
PresentationViewPager.java Class
package com.fxn.bubbletabbarapp.java;
import android.content.Context;
import android.util.AttributeSet;
import android.view.animation.DecelerateInterpolator;
import android.widget.Scroller;
import androidx.viewpager.widget.ViewPager;
import java.lang.reflect.Field;
public class PresentationViewPager extends ViewPager {
private static final int DEFAULT_SCROLL_DURATION = 250;
private static final int PRESENTATION_MODE_SCROLL_DURATION = 1000;
public PresentationViewPager(Context context) {
super(context);
}
public PresentationViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public final void setDurationScroll(int millis) {
try {
Class viewpager = ViewPager.class;
Field scroller = viewpager.getDeclaredField("mScroller");
scroller.setAccessible(true);
Context context = this.getContext();
scroller.set(this, new OwnScroller(context, millis));
} catch (Exception e) {
e.printStackTrace();
}
}
public final class OwnScroller extends Scroller {
private int durationScroll;
public void startScroll(int startX, int startY, int dx, int dy, int duration) {
super.startScroll(startX, startY, dx, dy, durationScroll);
}
public final int getDurationScroll() {
return durationScroll;
}
public final void setDurationScroll(int var) {
durationScroll = var;
}
private OwnScroller(Context context, int durationScroll) {
super(context, (new DecelerateInterpolator()));
this.durationScroll = durationScroll;
}
}}
ViewPagerAdapter.java Class
package com.fxn.bubbletabbarapp.java;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import com.fxn.bubbletabbarapp.R;
import com.fxn.bubbletabbarapp.R.id;
import java.util.ArrayList;
import org.jetbrains.annotations.Nullable;
public final class ViewPagerAdapter extends FragmentPagerAdapter {
private static final String ARG_PARAM1 = "param1";
private ArrayList<String> list;
public final void setList(ArrayList<String> list) {
this.list = list;
}
public Fragment getItem(int position) {
ViewPagerAdapter.Child.Companion adapter = ViewPagerAdapter.Child.Companion;
return adapter.newInstance(list.get(position));
}
public int getCount() {
return list.size();
}
public ViewPagerAdapter(FragmentManager supportFragmentManager) {
super(supportFragmentManager);
}
public static final class Child extends Fragment {
private String param1 = "";
private static final ViewPagerAdapter.Child.Companion Companion = new ViewPagerAdapter.Child.Companion(null);
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = this.getArguments();
if (bundle != null) {
param1 = bundle.getString(ARG_PARAM1);
}
}
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = LayoutInflater.from(this.getContext()).inflate(R.layout.fragment_child, null, false);
AppCompatTextView text = (AppCompatTextView)view.findViewById(id.tv);
text.setText(param1);
return view;
}
public void onDestroyView() {
super.onDestroyView();
}
public static ViewPagerAdapter.Child newInstance(String param1) {
return Companion.newInstance(param1);
}
private static final class Companion {
private ViewPagerAdapter.Child newInstance(String param1) {
ViewPagerAdapter.Child var = new ViewPagerAdapter.Child();
Bundle bundle = new Bundle();
bundle.putString(ARG_PARAM1, param1);
var.setArguments(bundle);
return var;
}
private Companion() {
}
private Companion(Object object) {
this();
}
}
}}
Please use that code it is fully working
from bubbletabbar.
On ViewPagerAdapter change:
_AppCompatTextView text = (AppCompatTextView)view.findViewById(id.tv);_
TO
AppCompatTextView text = (AppCompatTextView)view.findViewById(R.id.tv);
Thanks for sharing brother.
from bubbletabbar.
Related Issues (20)
- No option to add notification badges count icon on bubble tab bar icon HOT 4
- NavController Support HOT 2
- ViewPager2 Support HOT 2
- android:iconTint not working for API < 26 HOT 1
- Background is not set properly for API < 23 HOT 1
- Animation time HOT 1
- different fragment HOT 1
- Cannot Change the color of text HOT 1
- Received status code 403 from server: Forbidden HOT 1
- Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int io.ak1.Bubble.getId()' on a null object reference
- Is there any way to change the shape of the selected bubble? HOT 1
- Attempt to invoke virtual method 'int io.ak1.Bubble.getId()' on a null object reference HOT 2
- How To Perform Android Instrument Testing HOT 1
- The onBubbleclick listener is not working in Java Code HOT 2
- First bubble text shown on activity recreate from saved state HOT 4
- How to connect with NavController in Java? HOT 2
- setTypeface dynamically from code HOT 1
- Adding dynamic data. HOT 1
- Pager HOT 1
- Question : How to add selected tab colors dynamically instead of menu xml ? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bubbletabbar.