Added OnClickListener for header view

This commit is contained in:
daniel oeh 2013-01-25 23:26:47 +01:00
parent bf14dced03
commit 96aa72c0ab
10 changed files with 70 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -4,15 +4,26 @@
android:layout_height="match_parent"
android:background="?attr/borderless_button" >
<ImageView
android:id="@+id/imgvHeaderArrow"
android:layout_width="@dimen/thumbnail_length"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:padding="12dp"
android:scaleType="fitEnd"
android:src="?attr/navigation_expand" />
<TextView
android:id="@+id/txtvHeaderTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginBottom="24dp"
android:layout_marginLeft="16dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="16dp"
android:layout_marginTop="24dp"
android:layout_toRightOf="@id/imgvHeaderArrow"
android:textColor="@color/bright_blue"
android:textSize="@dimen/text_size_large"
android:textStyle="bold" />

View File

@ -18,6 +18,7 @@
<attr name="navigation_accept" format="reference" />
<attr name="navigation_cancel" format="reference" />
<attr name="navigation_expand" format="reference" />
<attr name="navigation_collapse" format="reference" />
<attr name="navigation_refresh" format="reference" />
<attr name="navigation_up" format="reference" />
<attr name="social_share" format="reference" />

View File

@ -20,6 +20,7 @@
<item name="attr/navigation_accept">@drawable/navigation_accept</item>
<item name="attr/navigation_cancel">@drawable/navigation_cancel</item>
<item name="attr/navigation_expand">@drawable/navigation_expand</item>
<item name="attr/navigation_collapse">@drawable/navigation_collapse</item>
<item name="attr/navigation_refresh">@drawable/navigation_refresh</item>
<item name="attr/navigation_up">@drawable/navigation_up</item>
<item name="attr/social_share">@drawable/social_share</item>
@ -55,6 +56,7 @@
<item name="attr/navigation_accept">@drawable/navigation_accept_dark</item>
<item name="attr/navigation_cancel">@drawable/navigation_cancel_dark</item>
<item name="attr/navigation_expand">@drawable/navigation_expand_dark</item>
<item name="attr/navigation_collapse">@drawable/navigation_collapse_dark</item>
<item name="attr/navigation_refresh">@drawable/navigation_refresh_dark</item>
<item name="attr/navigation_up">@drawable/navigation_up_dark</item>
<item name="attr/social_share">@drawable/social_share_dark</item>

View File

@ -0,0 +1,55 @@
package de.danoeh.antennapod.adapter;
import de.danoeh.antennapod.R;
import android.content.res.TypedArray;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
/**
* OnClickListener for the itemlist headers of feeditem lists. This class takes
* care of changing the appearance of the arrow on the left side of the header
* view. An instance of this class should be set as the OnClickListener of the
* header view.
*/
public class OnItemlistHeaderClicked implements OnClickListener {
private ImageView arrow;
private View header;
private boolean isExpanded;
/**
* Constructor
*
* @param header
* Reference to the header View of the itemlist.
* @param isExpanded
* true if the itemlist is currently expanded.
* */
public OnItemlistHeaderClicked(View header, boolean isExpanded) {
if (header == null)
throw new IllegalArgumentException("Header view must not be null");
this.header = header;
arrow = (ImageView) header.findViewById(R.id.imgvHeaderArrow);
this.isExpanded = isExpanded;
refreshArrowState();
}
private void refreshArrowState() {
TypedArray typeDrawables = header.getContext().obtainStyledAttributes(
new int[] { R.attr.navigation_collapse,
R.attr.navigation_expand });
if (isExpanded) {
arrow.setImageDrawable(typeDrawables.getDrawable(0));
} else {
arrow.setImageDrawable(typeDrawables.getDrawable(1));
}
}
@Override
public void onClick(View v) {
isExpanded = !isExpanded;
refreshArrowState();
}
}