public class LeftMenuView extends LinearLayout {
    LinkedHashMap<Integer,String> map=new LinkedHashMap<>();
    public LeftMenuView(Context context) {
        super(context);
        addView(context);
    }
    public LeftMenuView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        addView(context);
    }
    public LeftMenuView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        addView(context);
    }

    private void addView(final Context mContext) {
        map.put(R.drawable.ico_left_menu_cashier,"收银");
        map.put(R.drawable.ico_left_menu_order,"订单");
        map.put(R.drawable.ico_left_menu_after_sales,"售后");
        map.put(R.drawable.ico_left_menu_goods,"商品");
        map.put(R.drawable.ico_left_menu_setting,"设置");
        for (final Map.Entry<Integer, String> entry : map.entrySet()) {
            TextView tvName=new TextView(mContext);
            View viewLine=new View(mContext);
            addView(tvName);
            addView(viewLine);

            LinearLayout.LayoutParams tvLayoutParams = (LayoutParams) tvName.getLayoutParams();
            LinearLayout.LayoutParams viewLayoutParams = (LayoutParams) viewLine.getLayoutParams();

            tvLayoutParams.width=LayoutParams.WRAP_CONTENT;
            tvLayoutParams.height=getResources().getDimensionPixelOffset(R.dimen.left_menu_tv_heigth);
            tvLayoutParams.gravity=Gravity.CENTER;
            tvName.setText(entry.getValue());
            tvName.setTag(entry.getKey());
            tvName.setTextSize(getResources().getDimension(R.dimen.textsize_10));
            tvName.setTextColor(ContextCompat.getColor(mContext,R.color.common_blue));
            tvName.setGravity(Gravity.CENTER);
            Drawable drawableLeft=ContextCompat.getDrawable(mContext,entry.getKey());
            drawableLeft.setBounds(0, 0, drawableLeft.getMinimumWidth(), drawableLeft.getMinimumHeight());
            tvName.setCompoundDrawables(drawableLeft,null,null,null);
            tvName.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen._10dp));

            viewLayoutParams.width= LayoutParams.MATCH_PARENT;
            viewLayoutParams.height=getResources().getDimensionPixelOffset(R.dimen.common_margin_super_small);
            viewLine.setBackgroundColor(ContextCompat.getColor(mContext,R.color.divider_line_grey_color));
            tvName.setOnClickListener(new View.OnClickListener(){

                @Override
                public void onClick(View v) {
                    //listener.leftClick();
                    int drawableId=Integer.valueOf(v.getTag().toString());
                    if(drawableId==R.drawable.ico_left_menu_cashier){
                        mContext.startActivity(new Intent(mContext, MainActivity.class));
                    }else if(drawableId==R.drawable.ico_left_menu_order){

                    }else if(drawableId==R.drawable.ico_left_menu_after_sales){

                    }else if(drawableId==R.drawable.ico_left_menu_goods){
                        mContext.startActivity(new Intent(mContext, GoodsMessageActivity.class));
                    }else if(drawableId==R.drawable.ico_left_menu_setting){

                    }
                }
            });
            tvName.setLayoutParams(tvLayoutParams);
            viewLine.setLayoutParams(viewLayoutParams);
        }
    }


    //自定义的顶部ActionBar的点击监听;
    private LeftMenuClickListener listener;
    //点击事件的监听接口
    public interface LeftMenuClickListener {
        void leftClick();
        void rightClick();
    }
    //提供activity调用的方法,类似于Button类的setOnClickListener(OnClickListener listener)
    //传入具体实现方法
    public void setOnTopbarClickListener(LeftMenuClickListener listener){
        this.listener=listener;
    }

}
View Code

相关文章:

  • 2021-09-14
  • 2022-12-23
  • 2022-12-23
  • 2021-10-26
  • 2021-10-15
  • 2021-09-24
  • 2022-01-04
  • 2022-12-23
猜你喜欢
  • 2021-12-17
  • 2021-08-25
  • 2021-04-04
  • 2022-12-23
  • 2022-12-23
  • 2021-04-18
  • 2021-06-25
相关资源
相似解决方案