package com.rey.slidelayoutdemo; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.ListView; import android.widget.TextView; import com.rey.slidelayout.SlideLayout; public class MainActivity extends Activity implements SlideLayout.OnStateChangedListener, AdapterView.OnItemClickListener { SlideLayout sl_top; SlideLayout sl_bottom; SlideLayout sl_activity; CheckBox cb_top; CheckBox cb_anim; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sl_top = (SlideLayout)findViewById(R.id.main_sl_top); sl_bottom = (SlideLayout)findViewById(R.id.main_sl_bottom); cb_top = (CheckBox)findViewById(R.id.main_cb_top); cb_anim = (CheckBox)findViewById(R.id.main_cb_anim); cb_top.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { sl_top.setVisibility(isChecked ? View.VISIBLE : View.GONE); sl_bottom.setVisibility(isChecked ? View.GONE : View.VISIBLE); } }); initTopSlideLayout(); initBottomSlideLayout(); initActivitySlideLayout(); } private void initActivitySlideLayout(){ sl_activity = new SlideLayout(this, null, R.style.SlideLayoutStyle2Demo); TextView v = (TextView)LayoutInflater.from(this).inflate(R.layout.layout_text, null); v.setBackgroundColor(0xFFFF0000); v.setText("Left Menu"); sl_activity.addView(v); v = (TextView)LayoutInflater.from(this).inflate(R.layout.layout_text, null); v.setBackgroundColor(0xFF00FF00); v.setText("Right Menu"); sl_activity.addView(v); v = (TextView)LayoutInflater.from(this).inflate(R.layout.layout_text, null); v.setBackgroundColor(0xFF0000FF); v.setText("Bottom Menu"); sl_activity.addView(v); sl_activity.attachToActivity(this, true); } private void initTopSlideLayout(){ ListView lv_left = (ListView)sl_top.findViewById(R.id.top_left); ListView lv_right = (ListView)sl_top.findViewById(R.id.top_right); ListView lv_top = (ListView)sl_top.findViewById(R.id.top_top); ListView lv_bottom = (ListView)sl_top.findViewById(R.id.top_bottom); lv_left.setAdapter(new ButtonAdapter(10, "Close left menu")); lv_right.setAdapter(new ButtonAdapter(10, "Close right menu")); lv_top.setAdapter(new ButtonAdapter(10, "Close top menu")); lv_bottom.setAdapter(new ButtonAdapter(10, "Close bottom menu")); lv_left.setOnItemClickListener(this); lv_right.setOnItemClickListener(this); lv_top.setOnItemClickListener(this); lv_bottom.setOnItemClickListener(this); Button bt_left = (Button)sl_top.findViewById(R.id.content_bt_left); Button bt_right = (Button)sl_top.findViewById(R.id.content_bt_right); Button bt_top = (Button)sl_top.findViewById(R.id.content_bt_top); Button bt_bottom = (Button)sl_top.findViewById(R.id.content_bt_bottom); View.OnClickListener listener = new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.content_bt_left: sl_top.openLeftMenu(cb_anim.isChecked()); break; case R.id.content_bt_right: sl_top.openRightMenu(cb_anim.isChecked()); break; case R.id.content_bt_top: sl_top.openTopMenu(cb_anim.isChecked()); break; case R.id.content_bt_bottom: sl_top.openBottomMenu(cb_anim.isChecked()); break; } } }; bt_left.setOnClickListener(listener); bt_right.setOnClickListener(listener); bt_top.setOnClickListener(listener); bt_bottom.setOnClickListener(listener); TextView tv = (TextView)sl_top.findViewById(R.id.content_tv); tv.setText("Content Above Menu"); } private void initBottomSlideLayout(){ ListView lv_left = (ListView)sl_bottom.findViewById(R.id.bottom_left); ListView lv_right = (ListView)sl_bottom.findViewById(R.id.bottom_right); ListView lv_top = (ListView)sl_bottom.findViewById(R.id.bottom_top); ListView lv_bottom = (ListView)sl_bottom.findViewById(R.id.bottom_bottom); lv_left.setAdapter(new ButtonAdapter(10, "Close left menu")); lv_right.setAdapter(new ButtonAdapter(10, "Close right menu")); lv_top.setAdapter(new ButtonAdapter(10, "Close top menu")); lv_bottom.setAdapter(new ButtonAdapter(10, "Close bottom menu")); lv_left.setOnItemClickListener(this); lv_right.setOnItemClickListener(this); lv_top.setOnItemClickListener(this); lv_bottom.setOnItemClickListener(this); Button bt_left = (Button)sl_bottom.findViewById(R.id.content_bt_left); Button bt_right = (Button)sl_bottom.findViewById(R.id.content_bt_right); Button bt_top = (Button)sl_bottom.findViewById(R.id.content_bt_top); Button bt_bottom = (Button)sl_bottom.findViewById(R.id.content_bt_bottom); View.OnClickListener listener = new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.content_bt_left: sl_bottom.openLeftMenu(cb_anim.isChecked()); break; case R.id.content_bt_right: sl_bottom.openRightMenu(cb_anim.isChecked()); break; case R.id.content_bt_top: sl_bottom.openTopMenu(cb_anim.isChecked()); break; case R.id.content_bt_bottom: sl_bottom.openBottomMenu(cb_anim.isChecked()); break; } } }; bt_left.setOnClickListener(listener); bt_right.setOnClickListener(listener); bt_top.setOnClickListener(listener); bt_bottom.setOnClickListener(listener); TextView tv = (TextView)sl_bottom.findViewById(R.id.content_tv); tv.setText("Content Below Menu"); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { switch (parent.getId()) { case R.id.top_left: sl_top.closeLeftMenu(cb_anim.isChecked()); break; case R.id.top_right: sl_top.closeRightMenu(cb_anim.isChecked()); break; case R.id.top_top: sl_top.closeTopMenu(cb_anim.isChecked()); break; case R.id.top_bottom: sl_top.closeBottomMenu(cb_anim.isChecked()); break; case R.id.bottom_left: sl_bottom.closeLeftMenu(cb_anim.isChecked()); break; case R.id.bottom_right: sl_bottom.closeRightMenu(cb_anim.isChecked()); break; case R.id.bottom_top: sl_bottom.closeTopMenu(cb_anim.isChecked()); break; case R.id.bottom_bottom: sl_bottom.closeBottomMenu(cb_anim.isChecked()); break; } } @Override public void onStateChanged(View v, int old_state, int new_state) { } @Override public void onOffsetChanged(View v, float offsetX, float offsetY, int state) { } class ButtonAdapter extends BaseAdapter{ int count; String text; public ButtonAdapter(int count, String text){ this.count = count; this.text = text; } @Override public int getCount() { return count; } @Override public Object getItem(int position) { return text; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if(v == null) v = LayoutInflater.from(MainActivity.this).inflate(R.layout.row_menu, null); ((TextView)v).setText(text); return v; } } }