AAkira / ExpandableLayout

[Deprecated] An android library that brings the expandable layout with various animation. You can include optional contents and use everywhere.
Apache License 2.0
1.65k stars 325 forks source link

ExpandableLinearLayout not animating vertically even if app:ael_orientation = "vertical" #79

Open azizkayumov opened 8 years ago

azizkayumov commented 8 years ago

Here is my xml:

`
<TextView android:id="@+id/overlayText" android:layout_width="match_parent" android:minHeight="56dp" android:background="@color/colorAccent" android:layout_height="wrap_content"/>

<com.github.aakira.expandablelayout.ExpandableLinearLayout
    android:id="@+id/expandableLayout"
    android:layout_width="match_parent"
    android:layout_below="@+id/overlayText"
    android:layout_height="wrap_content"
    android:background="@color/colorAccent"
    app:ael_expanded="false"
    app:ael_duration="300"
    app:ael_interpolator="fastOutSlowIn"
    app:ael_orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:minHeight="206dp"
        android:layout_height="wrap_content"/>

</com.github.aakira.expandablelayout.ExpandableLinearLayout>

`

And this is my fragment code snippet:

`mExpandLayout = (ExpandableLinearLayout) root.findViewById(R.id.expandableLayout); mOverlayText = (TextView) root.findViewById(R.id.overlayText);

    mOverlayText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mExpandLayout.toggle();
        }
    });`

I should use ExpandableLinearLayout since the child will chage its size. Please, help!

mojotti commented 8 years ago

I'm having exactly the same problem!

mojotti commented 8 years ago

Hello AbduazizKayumov,

I managed to find a solution for this problem. I have also text that is coming from server so it will change it's size dynamically.

You have to use ExpandableRelativeLayout like this:

    <Button
        android:id="@+id/expandableButton1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/dark_green2"
        android:drawableRight="@android:drawable/arrow_down_float"
        android:onClick="expandableButton1"
        android:text=""
        android:textColor="#fff"
        android:layout_marginTop="16dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:visibility="gone" />

    <com.github.aakira.expandablelayout.ExpandableRelativeLayout
        android:id="@+id/expandableLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/light_green2"
        android:padding="16dp"
        app:ael_duration="400"
        app:ael_expanded="true"
        app:ael_interpolator="bounce"
        app:ael_orientation="vertical"
        android:layout_below="@+id/expandableButton1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:visibility="gone">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/expandableText1"
            android:text="Loading stuff from internet..."/>
    </com.github.aakira.expandablelayout.ExpandableRelativeLayout>

Note here that I use: android:visibility="gone" by default. This makes view invisible at first. We will make it visible on Java code.

Then on Java code, add function like this, before you call your mOverlayText.setOnClickListener(new View.OnClickListener()

public void makeViewsVisible() { View view1 = findViewById(R.id.expandableButton1); View view1_text = findViewById(R.id.expandableLayout1);

view1.setVisibility(View.VISIBLE);
view1_text.setVisibility(View.VISIBLE);

}

You have to also call this function from inside your mOverlayText.setOnClickListener(new View.OnClickListener().

For me it works, does not matter that I have text coming from server. Also there is no problem with animation.

Hope this helps!

dude0367 commented 8 years ago

I had the same issue, the that I found is to use android:orientation="vertical" as an attribute because it extends LinearLayout. Enjoy.

aplocher commented 6 years ago

@dude0367 your solution fixed it for me. I have both ael_orientation=vertical and android:orientation='vertical' and it works now. Thanks

sankar07 commented 5 years ago

ael_orientation=vertical and android:orientation='vertical' and it works now. Thanks

kirtanparmar commented 4 years ago

I had the same issue, the that I found is to use android:orientation="vertical" as an attribute because it extends LinearLayout. Enjoy.

Not working for me.

@dude0367 your solution fixed it for me. I have both ael_orientation=vertical and android:orientation='vertical' and it works now. Thanks

With this works fine.