作者:燕歆波
导读:使用两个LienarLayout实现菜单从上到下或者从下到上的增加和删除,类似支付宝增加功能和移除功能
功能比较简单就直接贴代码了,布局就是上下两个LinearLayout:
@BindContentView(R.layout.activity_two_linear_layout)
public class TwoLinearLayout extends BackActivity {
@BindView(id = R.id.ll_top)
private AutoLinefeedLayout ll_top;
@BindView(id = R.id.ll_bottom)
private AutoLinefeedLayout ll_bottom;
private List<String> dataList;
@Override
public void onLoad(Bundle bundle) {
super.onLoad(bundle);
initData();
setBottomData();
}
private void initData() {
dataList = new ArrayList<>();
dataList.clear();
for (int i = 0; i < 10; i++) {
dataList.add("slkdjas" + i);
}
}
private void setBottomData() {
for (int i = 0; i < dataList.size(); i++) {
String content = dataList.get(i);
View view = View.inflate(this, R.layout.item_service_theme_layout, null);
TextView tv_hot_tag_name = (TextView) view.findViewById(R.id.tv_hot_tag_name);
tv_hot_tag_name.setText(content);
ll_bottom.addView(view);
view.setOnClickListener(new MyClick());
}
}
class MyClick2 implements View.OnClickListener {
@Override
public void onClick(View v) {
//移除已经添加的菜单
ll_top.removeView(v);
//将删除的菜单重新还原到原位
ll_bottom.addView(v);
//移除后,菜单归回原位,再次点击时,实现新增菜单功能
v.setOnClickListener(new MyClick());
}
}
class MyClick implements View.OnClickListener {
@Override
public void onClick(View v) {
//移除菜单添加到另一个LienarLayout中
ll_bottom.removeView(v);
//添加新的菜单
ll_top.addView(v);
//添加后,被添加的view如果再次点击则是将添加的菜单归回原位,然后从当前LinearLayout中移除
v.setOnClickListener(new MyClick2());
}
}
}