In one of my projects I have implemented CustomTabHost from https://stackoverflow.com/a/19467434/3484668
What I am trying to do is semi-hide the tab host tab widget when clicked on a second child tab widget and then expand it if clicked again.
Here is the code of collapse :
frTabHost.getTabWidget().getChildTabViewAt(2).setOnClickListener(tabWidgetSecondChildListener);
Listener is :
private class TabWidgetSecondChildListener implements View.OnClickListener
{
@Override public void onClick(View view)
{
Log.d(TAG, "onClick: tabwidget clicked");
Toast.makeText(DashboardActivity.this, "onClick: tabwidget clicked", Toast.LENGTH_SHORT)
.show();
if (!isTabExpanded)
{
//Utility.semiExpand(frTabHost.getTabWidget(), frTabHost.getTabWidget().getHeight());
ObjectAnimator a = new ObjectAnimator();
a.setPropertyName("translationY");
a.setDuration((int) (2 * (frTabHost.getTabWidget().getHeight()
/ getResources().getDisplayMetrics().density)));
a.setTarget(frTabHost.getTabWidget());
a.setFloatValues(0, -frTabHost.getTabWidget().getHeight());
a.start();
ObjectAnimator b = new ObjectAnimator();
b.setPropertyName("translationY");
b.setDuration((int) (2 * ((ivTabs.getHeight() / 2)
/ getResources().getDisplayMetrics().density)));
b.setTarget(ivTabs);
b.setFloatValues(0, -ivTabs.getHeight() / 2);
b.start();
ivTabs.setClickable(false);
isTabExpanded = true;
} else
{
ObjectAnimator a = new ObjectAnimator();
a.setPropertyName("translationY");
a.setDuration((int) (2 * (frTabHost.getTabWidget().getHeight()
/ getResources().getDisplayMetrics().density)));
a.setTarget(frTabHost.getTabWidget());
a.setFloatValues(0, frTabHost.getTabWidget().getHeight());
a.start();
ObjectAnimator b = new ObjectAnimator();
b.setPropertyName("translationY");
b.setDuration((int) (2 * ((ivTabs.getHeight() / 2)
/ getResources().getDisplayMetrics().density)));
b.setTarget(ivTabs);
b.setFloatValues(0, ivTabs.getHeight() / 2);
b.start();
ivTabs.setClickable(true);
ivTabs.setOnClickListener(ivTabsListener);
isTabExpanded = false;
}
}
}
Code for iVTabsLisener :
private class IvTabsListener implements View.OnClickListener
{
@Override public void onClick(View view)
{
Toast.makeText(DashboardActivity.this, "onClick: ivTabs clicked", Toast.LENGTH_SHORT).show();
if (!isTabExpanded)
{
ObjectAnimator a = new ObjectAnimator();
a.setPropertyName("translationY");
a.setDuration((int) (2 * (frTabHost.getTabWidget().getHeight()
/ getResources().getDisplayMetrics().density)));
a.setTarget(frTabHost.getTabWidget());
a.setFloatValues(0, -frTabHost.getTabWidget().getHeight());
a.start();
ObjectAnimator b = new ObjectAnimator();
b.setPropertyName("translationY");
b.setDuration(
(int) (2 * ((ivTabs.getHeight() / 2) / getResources().getDisplayMetrics().density)));
b.setTarget(ivTabs);
b.setFloatValues(0, -ivTabs.getHeight() / 2);
b.start();
isTabExpanded = true;
ivTabs.setClickable(true);
ivTabs.setOnClickListener(null);
}
}
}
Problem is: It is collapsing the first time, then it is expanding the second time and everything is right. But then none of the clicks on fragment or image view is working. Please, could anyone help solve this?