GithubHelp home page GithubHelp logo

suleiman19 / android-material-design-for-pre-lollipop Goto Github PK

View Code? Open in Web Editor NEW
580.0 35.0 332.0 864 KB

Various UI implementations, animations & effects based on Material Design compatible with pre Lollipop devices as well. (Work in progess)

Home Page: http://blog.grafixartist.com

License: Apache License 2.0

Java 100.00%
java fab material-design material-ui android-material android android-sample-application animation android-ui

android-material-design-for-pre-lollipop's Introduction

Android-Material-Design-for-pre-Lollipop

Various UI implementations, animations & effects based on Material Design compatible with pre Lollipop devices as well. (Work in progess)

Implements various Material Design components, that go by the design guidelines. Especially for pre-Lollipop devices.

1) Google+ like screen (Toolbar & FAB animation) Demonstrates animation similar to the Google+ app. The toolbar and Floating Action Button (FAB) hide upon scrolling down, and translate back up when scrolled up.

Plus the FAB greets users with a grow animation upon entrance.

The Spinner used on the Toolbar, is a custom implementation.

Option to enable fading for the Toolbar on hide and show. Similar to the effect as seen on the Google I/O 2015 app.

NOTE: I've used my own implementation for a FAB (Check myfab.xml)

2) Transparent Toolbar with Ripple imitation Transparent and overlaid toolbar. On Lollipop devices, Status Bar is transparent as well . The FAB on click, shows a ripple-like effect spread over the entire background. Nothing but a simple circle shape with a grow animation. (Useful for pre-Lollipop).

3) Navigation Drawer Material Design styled Navigation Drawer with header image and menu. VERY quick way to get started with such a Drawer swiftly. Made using Design Support Library. Since the NavigationView uses a menu resource to load the list of items, if anyone wants to have a custom list with counters for instance, I'd suggest you use a custom library like the MaterialNavigationDrawer from neokree

alt tag

4) Toolbar Header Animation Large header image with on scroll animation for Toolbar. Dynamic Toolbar coloring using Palette class based off the header image. Using the Design Support Library.

Also includes a Floating Action Button(FAB) Design library widget. See activity_animate_toolbar.xml

alt tag

5) Tab Strip Material Design Tab strip attached below the Toolbar. Using the Design Support Library, includes on scroll hide and reveal animations.

alt tag

6) Cardview Toolbar (Nested Toolbar)

7) Bottom Sheets along with Gmail app style lists

8) Reveal Animation (WhatsApp attach button animation) pre Lollipop compatible

9) Onboarding with ViewPager (Google style)

android-material-design-for-pre-lollipop's People

Contributors

mishkaowner avatar suleiman19 avatar suleiman56060 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-material-design-for-pre-lollipop's Issues

Material Design Tabs mode Landscape Forced closed appear

Material Design Tabs mode Landscape Forced closed appear.
I'm tested on devices OS Android 4.2.2 (API 17).

Logcat info :

06-07 23:33:33.709 28586-28586/com.suleiman.material E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.suleiman.material/com.suleiman.material.activities.TabAnimationActivity}: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.suleiman.material.activities.TabAnimationActivity$DummyFragment: make sure class name exists, is public, and has an empty constructor that is public
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2396)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2448)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3965)
at android.app.ActivityThread.access$700(ActivityThread.java:173)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1398)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5469)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:857)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.suleiman.material.activities.TabAnimationActivity$DummyFragment: make sure class name exists, is public, and has an empty constructor that is public
at android.support.v4.app.Fragment.instantiate(Fragment.java:432)
at android.support.v4.app.FragmentState.instantiate(Fragment.java:102)
at android.support.v4.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1835)
at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:266)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:58)
at com.suleiman.material.activities.TabAnimationActivity.onCreate(TabAnimationActivity.java:33)
at android.app.Activity.performCreate(Activity.java:5226)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1151)
at com.lbe.security.service.core.client.b.x.callActivityOnCreate(Unknown Source)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2448)
            at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3965)
            at android.app.ActivityThread.access$700(ActivityThread.java:173)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1398)
            at android.os.Handler.dispatchMessage(Handler.java:107)
            at android.os.Looper.loop(Looper.java:194)
            at android.app.ActivityThread.main(ActivityThread.java:5469)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:857)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
            at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.InstantiationException: can't instantiate class com.suleiman.material.activities.TabAnimationActivity$DummyFragment; no empty constructor
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1319)
at android.support.v4.app.Fragment.instantiate(Fragment.java:421)
            at android.support.v4.app.FragmentState.instantiate(Fragment.java:102)
            at android.support.v4.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1835)
            at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:266)
            at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:58)
            at com.suleiman.material.activities.TabAnimationActivity.onCreate(TabAnimationActivity.java:33)
            at android.app.Activity.performCreate(Activity.java:5226)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1151)
            at com.lbe.security.service.core.client.b.x.callActivityOnCreate(Unknown Source)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2448)
            at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3965)
            at android.app.ActivityThread.access$700(ActivityThread.java:173)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1398)
            at android.os.Handler.dispatchMessage(Handler.java:107)
            at android.os.Looper.loop(Looper.java:194)
            at android.app.ActivityThread.main(ActivityThread.java:5469)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:857)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
            at dalvik.system.NativeStart.main(Native Method)

activity_nested_toolbar.xml

Using Android Studio 1.2.2
Using Android Emulator (Android 2.3.3, API 10, NEXUS S Api 10, 480 x 800 hdpi)
Issue: following xml file does not display correctly.
As if layout_margins (Left + top) are not applied thus shows main CardView skewed.
Solved: By Wrapping CardView with RelativeLayout.
Attach my src below:

<FrameLayout 
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:id="@+id/nested_parentframe"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_material_light"
tools:context=".NestedToolbarActivity">

<android.support.v7.widget.Toolbar
    android:id="@+id/nested_toolbar_1"
    android:layout_width="match_parent"
    android:layout_height="@dimen/toolbar_double_height"
    android:background="?attr/colorPrimary" />
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginEnd="@dimen/cardview_toolbar_spacer"
    android:layout_marginLeft="@dimen/cardview_toolbar_spacer"
    android:layout_marginRight="@dimen/cardview_toolbar_spacer"
    android:layout_marginTop="?attr/actionBarSize"
    app:cardBackgroundColor="@android:color/white"
    app:cardElevation="2dp"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <android.support.v7.widget.Toolbar
            android:id="@+id/nested_toolbar_2"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:layout_marginTop="-4dp" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:alpha="0.12"
            android:background="@android:color/black" />
    </LinearLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
  </FrameLayout>

hide toolbar and remain tabStrip

hi thanks for this sample :)
i'm using a viewpager in my main activity! and some nested fragments in my pager!
is it possible to hide toolbar when recyclerView scrolled but remain the viewPager tabStrip?
somthing like google play just take a look how it hides the toolbar...
thanks...

Gradle build fail

Information:Gradle tasks [:app:generateDebugSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:generateDebugAndroidTestSources]
Error:Failed to crunch file C:\Users\Hitesh\Downloads\Android-Material-Design-for-pre-Lollipop-master\Android-Material-Design-for-pre-Lollipop-

master\MaterialSample\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\24.2.1\res\drawable-hdpi-v4\abc_textfield_search_default_mtrl_alpha.9.png into C:\Users\Hitesh\Downloads\Android-Material-Design-for-pre-Lollipop-master\Android-Material-Design-for-pre-Lollipop-master\MaterialSample\app\build\intermediates\res\merged\debug\drawable-hdpi-v4\abc_textfield_search_default_mtrl_alpha.9.png
Error:Execution failed for task ':app:mergeDebugResources'.
> Error: Failed to crunch file C:\Users\Hitesh\Downloads\Android-Material-Design-for-pre-Lollipop-master\Android-Material-Design-for-pre-Lollipop-master\MaterialSample\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\24.2.1\res\drawable-hdpi-v4\abc_textfield_search_default_mtrl_alpha.9.png into C:\Users\Hitesh\Downloads\Android-Material-Design-for-pre-Lollipop-master\Android-Material-Design-for-pre-Lollipop-master\MaterialSample\app\build\intermediates\res\merged\debug\drawable-hdpi-v4\abc_textfield_search_default_mtrl_alpha.9.png

NullPointer on Nexus7 w/Android 4.4.4

The sample imports and builds fine for me and runs on my samsung galaxy devices but when I try to run on a nexus 7 running android 4.4.4 I get this nullpointer -- upgrading to android 5.0.2 fixes the issue.

java.lang.NullPointerException
at android.support.design.internal.NavigationMenuItemView.setIcon(NavigationMenuItemView.java:113)
at android.support.design.internal.NavigationMenuItemView.initialize(NavigationMenuItemView.java:72)
at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.getView(NavigationMenuPresenter.java:305)
at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)
at android.widget.AbsListView.obtainView(AbsListView.java:2255)
at android.widget.ListView.makeAndAddView(ListView.java:1790)
at android.widget.ListView.fillDown(ListView.java:691)
at android.widget.ListView.fillFromTop(ListView.java:752)
at android.widget.ListView.layoutChildren(ListView.java:1630)
at android.widget.AbsListView.onLayout(AbsListView.java:2087)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:931)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1983)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1740)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)

Does it not work with AppCompat 23?

Getting many errors like the one shown below, when I try to compile this project having target=android-23

res\layout\recyclerlist_item.xml:2: error: No resource identifier found for attribute 'cardElevation' in package 'com.suleiman.material'

Please help! Newbie here :)

Reveal Animation Not Working on Lollipop 5.0.1

Hello,
Reveal Animation is not working on Lollipop 5.0.1 although it is working on below versions but not working on 5.0.1 tested with HTC one with 5.0.1 & Nexus 5 with same 5.0.1.

If anyone facing the same problem please let me know and resolve this issue as soon as possible.

Cannot build app in android studio..resource not found error

I have directly imported your package in android studio but it gives several errors on build. This is one of such error:
Error:(18, 58) No resource found that matches the given name (at 'drawable' with value '@drawable/abc_btn_check_to_on_mtrl_015').

this is my app build.gradle..other projects with similar gradle file works fine
buildToolsVersion '23.0.0'
compileSdkVersion 23
minSdkVersion 10
targetSdkVersion 23
compile 'com.android.support:design:23.0.0'
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:recyclerview-v7:23.0.0'
compile 'com.android.support:cardview-v7:23.0.0'
compile 'com.android.support:palette-v7:23.0.0'
compile 'com.github.ozodrukh:CircularReveal:1.1.0'
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'

When I select next item's position, it's background blinks to another color and then start evaluating from primary color to destination color

Reproduce:

  1. I have 3 elements in ViewPager
  2. I am on item's position 0
  3. I click the button which triggers selection next item's position
  4. ViewPager selects next position, calls onPageSelected
  5. ViewPager sets background color to next one (i.e red->blue)
  6. ViewPager starts evaluating color from item's position 0 to item's position 1 (i.e from red into blue)

Look at points 5. and 6. between these operations we can detect blink.

Solution:
Remove line: 129-139 from viewPager's listener: PagerActivity.java

how to scroll viewpager with its tab ?

hi i have xml layout in which i have Linearlayout (iMAGEVIE and some buttons) + design tablayout+ viewpager now i want once user start scrol down viewpager fragments then the whole page inclusing Linearlayout (iMAGEVIE and some buttons) + design tablayout will scroll towards up and when user start scrolling up then all tabs adn linear will be visible @Suleiman19

How rise method from purpose fragment #3

I want from MainActivity get CheeseListFragment method GetRequest. I create 10 instance of CheeseListFragment.

MainActivity.java

 private void setupViewPager(ViewPager viewPager, String[] items) {
        adapter = new Adapter(getSupportFragmentManager());

        for (int i=0; i<items.length; i++){
            adapter.addFragment(new CheeseListFragment(), items[i]);
        }

viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {

                if (adapter!=null) {
                    List<Fragment> list = new ArrayList<Fragment>();
                    list = adapter.mFragments; // Get Curren
                    list[i].GetRequest; // I want make it




                }
            }
}

CheeseListFragment.java

public class CheeseListFragment extends Fragment {


    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
.....
        return rv;
    }


    public void GetRequest(int page){
       /// http get request
    }

      }   

android.view.InflateException

The layouts will not inflate.

android.view.InflateException: Binary XML file line #10: Failed to resolve attribute at index 4: TypedValue{t=0x2/d=0x10102eb a=2 r=0x7f070051}

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2690)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2755)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1495)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6196)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
Caused by: android.view.InflateException: Binary XML file line #10: Failed to resolve attribute at index 4: TypedValue{t=0x2/d=0x10102eb a=2 r=0x7f070051}
Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 4: TypedValue{t=0x2/d=0x10102eb a=2 r=0x7f070051}

No start nav drawer

09-12 13:55:50.669 19642-19642/com.suleiman.material E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at android.support.design.internal.NavigationMenuItemView.setIcon(NavigationMenuItemView.java:114)
at android.support.design.internal.NavigationMenuItemView.initialize(NavigationMenuItemView.java:73)
at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.getView(NavigationMenuPresenter.java:334)
at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)
at android.widget.AbsListView.obtainView(AbsListView.java:2267)
at android.widget.ListView.makeAndAddView(ListView.java:1769)
at android.widget.ListView.fillDown(ListView.java:672)
at android.widget.ListView.fillFromTop(ListView.java:733)
at android.widget.ListView.layoutChildren(ListView.java:1608)
at android.widget.AbsListView.onLayout(AbsListView.java:2102)
at android.view.View.layout(View.java:13754)
at android.view.ViewGroup.layout(ViewGroup.java:4362)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:13754)
at android.view.ViewGroup.layout(ViewGroup.java:4362)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1067)
at android.view.View.layout(View.java:13754)
at android.view.ViewGroup.layout(ViewGroup.java:4362)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:13754)
at android.view.ViewGroup.layout(ViewGroup.java:4362)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
at android.view.View.layout(View.java:13754)
at android.view.ViewGroup.layout(ViewGroup.java:4362)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:13754)
at android.view.ViewGroup.layout(ViewGroup.java:4362)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
at android.view.View.layout(View.java:13754)
at android.view.ViewGroup.layout(ViewGroup.java:4362)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:13754)
at android.view.ViewGroup.layout(ViewGroup.java:4362)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1866)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1687)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
at android.view.Choreographer.doCallbacks(Choreographer.java:555)
at android.view.Choreographer.doFrame(Choreographer.java:525)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
09-12 13:55:50.689 19642-19644/com.suleiman.material D/dalvikvm﹕ GC_CONCURRENT freed 381K, 4% free 26103K/27015K, paused 11ms+1ms, total 19ms

Fragment creation under TabAnimationActivity.java

I think the proper way for fragment instance creation in real code may be within the getItem method of the FragmentPagerAdapter? In the current TabAnimationActivity.java new fragments got created each time when there is a rotation. This may work fine in some Android versions but under Android 5 which I tested, however, the system may be retaining the fragments (and does not call getItem again). This results in leaks and errors.

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.