tButton.setTag(i);
tButton.setText(mTextList.get(i));
//用于实现当PopWindow显示时.再次点击收回PopWindow
r.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onPressBack();
}
});
r.setBackgroundColor(mContext.getResources().getColor(R.color.popup_main_background));
//当按钮被点击后需要触发的监听
tButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
ToggleButton tButton = (ToggleButton) view;
/** 如果当前点击的按钮与上次的点击不同.则设置当前的按钮处于点击状态 */
if (selectedButton != null && selectedButton != tButton) {
selectedButton.setChecked(false);
}
selectedButton = tButton;
selectPosition = (Integer) selectedButton.getTag();
/** 按钮被点击后,需要触发对应的监听事件.*/
startAnimation();
if (mOnButtonClickListener != null && tButton.isChecked()) {
mOnButtonClickListener.onClick(selectPosition);
}
}
});
}
}
那么设置完了布局的样式后..只有一个ToggleButton按钮.点击后没有任何的效果.我们需要去定义一个新的View视图.用于点击
按钮后需要显示的弹出窗.那么这个弹出窗也需要自定义..
弹出窗则采用两个ListView的形式进行显示.在布局中将两个ListView进行添加.对每一个ListView设置相应的适配器.然后将这
个View添加到上面的主View当中.就可以实现当button被点击后,弹出窗在下方进行显示的效果..
ChildView() 弹出窗View的布局实现方式..
这里定义了这个View,并完成相应的初始化操作.设置对应的适配器也就完成了..
package com.example.view;
import java.util.ArrayList;
import java.util.LinkedList;
import android.content.Context;
import android.util.AttributeSet;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ListView;
import com.example.adapter.TextAdapter;
import com.example.expandtabview.R;
public class ChildView extends LinearLayout {
private ListView regionListView; //主ListView
private ListView plateListView; //子ListView
//主ListView每一个Item对应的text
private String LeftFaString[] = new String[] { "美食", "快餐小吃", "火锅", "海鲜/烧烤",
"特色菜", "香锅/烤鱼", "地方菜", "东南亚菜", "西餐", "日韩料理" };
//子ListView每一个Item对应的text..采用了二维数组的实现方式..