Git Product home page Git Product logo

Comments (2)

rajam1215 avatar rajam1215 commented on May 16, 2024 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.

Jsaiao avatar Jsaiao commented on May 16, 2024 1

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.