展开

关键词

Android之WindowManager.addView介绍

WindowManagerImpl类,WindowManagerImpl的路径:android.view.WindowManagerImpl @Override public void addView view, @NonNull ViewGroup.LayoutParams params) { applyDefaultToken(params); mGlobal.addView mGlobal.removeView(view, false); } WindowManagerImpl并没有直接实现Window的三大操作,而是全部交给了WindowManagerGlobal: public void addView

43920

Android自定义View实现课程表表格

(mNum); mMonday.addView(getWeekTransverseLine()); } mVerticalWeekLaout.addView(mMonday); break; case (l); mHorizontalWeekLayout.addView(getWeekVerticalLine()); } addView(mHorizontalWeekLayout); addView( getWeekTransverseLine()); addView(mVerticalWeekLaout); addView(getWeekTransverseLine()); } TimeTableModel (mNum); mMonday.addView(getWeekTransverseLine()); } mVerticalWeekLaout.addView(mMonday); break; case (l); mHorizontalWeekLayout.addView(getWeekVerticalLine()); } addView(mHorizontalWeekLayout); addView(

24520
  • 广告
    关闭

    开发者专享福利,1988元优惠券限量发放

    带你体验博客、网盘相册搭建部署、视频渲染、模型训练及语音、文字识别等热门场景。云服务器低至65元/年,GPU15元起

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一个难倒 3年 android开发经验 工程师 的 bug

    scaleType="centerCrop" 6 android:layout_width="30dp" 7 android:layout_height="30dp" /> 他设置了动态 addView 来事例化一个 View,而最为之关键的是,这个View 就是上面的 imageView的xml,里面明确设置了 width 和 height 是 30dp,显示方式是 centerCrop,最后通过 addView 为什么通过 addView() 的方法却败了呢? 问题的原因是这样的:任何使用 addView(...) (View child) { 14 addView(child, -1); 15 } 16 17 public void addView(View child, int index 那我就是要使用 addView 怎么办?自己加个宽高限制即可。

    36390

    layoutparser_你知道什么什么吗

    (textView3) 我们看看 addView() 都做了什么。 public void addView(View child) { addView(child, -1); } public void addView(View child, int index) (View child, int index, LayoutParams params) { if (DBG) { System.out.println(this + " addView"); 甚至是我们即使在 addView() 之前设置了错误的 LayoutParams 值,系统也会我们帮我们进行纠正。 虽然系统已经做的足够完善,帮我们各种矫正错误,但在 addView() 之后,我们还强行设置错误的 LayoutParams,那还是一定会报 ClassCastException 的。

    5920

    Android 状态切换控件 EasyStateView

    (View child) { addContentV(child); super.addView(child); } private void addContentV (View child, int index) { addContentV(child); super.addView(child, index); } (child); super.addView(child, index, params); } @Override public void addView(View child, ViewGroup.LayoutParams params) { addContentV(child); super.addView(child, params ); } @Override public void addView(View child, int width, int height) { addContentV

    45900

    Android开发(5) 代码方式生成表单

    比如:view.AddView(...). 4.在追加的父控件内时,可以指定布局的方式。 在动态添加完毕后,我们还需要能够获得对这些动态添加后的控件的值。 LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); row.addView (txtView1); row.addView(edit1); LayoutParams layoutParams2 = new LayoutParams (ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT); _pnlContent.addView (editText); row.addView(btnRemove); tablleLayout.addView(row,layoutParams2); 全文完,代码下载

    62800

    Flutter混合开发:启动黑屏处理

    上一篇 Flutter混合开发:Android接入Flutter 我们讲到在 Flutter混合开发 中主要有、有 addView (页面局部Flutter) 和 setContentView (整个页面 addView public class MainActivity extends AppCompatActivity { @Override protected void onCreate (FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); frameLayout.addView frameLayout.setVisibility(View.VISIBLE); flutterView.addFirstFrameListener(listeners); frameLayout.addView FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); getWindow().getDecorView().post(() -> frameLayout.addView

    1.1K10

    android-自定义组合控件和 自定义组合控件不显示问题

    mLeftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, TRUE); // 添加到 ViewGroup addView LayoutParams.MATCH_PARENT); mRightParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, TRUE); addView LayoutParams.MATCH_PARENT); mTitlepParams.addRule(RelativeLayout.CENTER_IN_PARENT, TRUE); addView mLeftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, TRUE); // 添加到 ViewGroup addView mLeftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, TRUE); // 添加到 ViewGroup addView

    32150

    Android开发中TableLayout表格布局

    1000"); textView.setTextSize(20); textView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_END); tableLayout.addView (button12); Button button13 = new Button(this); button13.setText("%"); tableRow1.addView(button13); Button button14 = new Button(this); button14.setText("÷"); tableRow1.addView(button14); tableLayout.addView (button); tableLayout.addView(tableRow2); 效果如下: ? (button); tableLayout.addView(tableRow2); ?

    54730

    Android实现二级购物车的全选加反选、总价功能

    (new View.OnClickListener() { @Override public void onClick(View v) { shu++; myViewHolder.addview.nums.setText (shu +""); } }); myViewHolder.addview.jian.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (shu =1){ shu--; myViewHolder.addview.nums.setText(shu +""); }else { addview; private final CheckBox box_goods; public MyViewHolder(@NonNull View itemView) { super(itemView = itemView.findViewById(R.id.addview); box_goods = itemView.findViewById(R.id.box_goods); } } } 以上就是本文的全部内容

    25020

    Android使用手势实现翻页效果

    ViewFlipper实例 flipper = (ViewFlipper) this.findViewById(R.id.flipper); // 为ViewFlipper添加8个ImageView组件 flipper.addView (addImageView(R.drawable.img01)); flipper.addView(addImageView(R.drawable.img02)); flipper.addView(addImageView (R.drawable.img03)); flipper.addView(addImageView(R.drawable.img04)); flipper.addView(addImageView(R.drawable.img05 )); flipper.addView(addImageView(R.drawable.img06)); flipper.addView(addImageView(R.drawable.img07)); flipper.addView(addImageView(R.drawable.img08)); // 初始化Animation数组 animations[0] = AnimationUtils.loadAnimation

    49441

    Android自定义流式布局自动换行布局实例

    = null){ onMoreClickListener.onShowMore(isHide); } } }); linearLayout.addView(imageView); return; } else = null){ onMoreClickListener.onShowMore(isHide); } } }); linearLayout.addView(text); linearLayout.addView = null){ onMoreClickListener.onShowMore(isHide); } } }); linearLayout.addView(text); linearLayout.addView (text); linearLayout.addView(imageView); }else { if (mParentWidth = numBar + textWidth){ linearLayout.addView (); linearLayout.addView(text); linearLayout.addView(imageView); } } return; } if (mParentWidth = numBar

    1.2K20

    Android ListView填充数据的方法

    PriceBoardAdapter priceBoardAdapter = new PriceBoardAdapter(context); listView.setAdapter(priceBoardAdapter); addView linearLayout = new LinearLayout(getContext()); linearLayout.setOrientation(VERTICAL); linearLayout.addView (nameView,p); linearLayout.addView(enCodeView,p); addView(linearLayout, p); p = new LinearLayout.LayoutParams linearLayout = new LinearLayout(getContext()); linearLayout.setOrientation(VERTICAL); linearLayout.addView (priceView,p); addView(linearLayout, p); } public void setItem(PriceData data){ priceData = data;

    52120

    android自定义滚轴选择器

    (mTitleLeft); titleLayout.addView(mTitleMiddle); titleLayout.addView(mTitleRight); //内容 LinearLayout (mNpLeft); contentLayout.addView(mUnitLeft); contentLayout.addView(mNpMiddle); contentLayout.addView( mUnitMiddle); contentLayout.addView(mNpRight); contentLayout.addView(mUnitRight); this.setLayoutParams (View child) { super.addView(child); updateView(child); } @Override public void addView(View child, int public void addView(View child, ViewGroup.LayoutParams params) { super.addView(child, params); updateView

    20862

    Android开发之漫漫长途 Ⅳ——Activity的显示之ViewRootImpl初探

    我们知道调用setContentView把我们自己的xml布局添加到了DecorView ID为ID_ANDROID_CONTENT的布局后,最终还是会调用WindowManager.addView把DecorView ---- 从第一篇文章中我们就知道了使用WindowManager.addView方法添加View。那么看看该类的实现吧。 public interface WindowManager extends ViewManager { //这里我们只列出了一部分函数,但是并没有addView、updateViewLayout WindowManagerGlobal 的addView方法并不复杂,其主要的关键点我们已经标注并写了注释。 WindowManagerGlobal是个单例类,它在进程中只存在一个实例,是它内部的addView方法最终创建了我们的核心类ViewRootImpl。

    17630

    Android解析WindowManager(三)Window的添加过程

    在注释2处调用了WindowManager的addView方法,addView方法定义在WindowManager的父类接口ViewManager中,而实现addView方法的则是WindowManagerImpl 在WindowManagerImpl的addView方法中,接着会调用WindowManagerGlobal的addView方法: frameworks/base/core/java/android/view 在注释2处得到ViewManager类型的wm对象,在注释3处调用了wm的addView方法,而addView方法的实现则是在WindowManagerImpl中,此后的过程在上面的系统窗口的添加过程已经讲过 ,唯一需要注意的是addView的第一个参数是DecorView。 结语 ViewManager不只定义了addView方法用来添加窗口,还定义了updateViewLayout和removeView方法用来更新和删除窗口,如下所示。 ?

    66270

    基于Android在布局中动态添加view的两种方法(总结)

    一、说明 添加视图文件的时候有两种方式:1、通过在xml文件定义layout;2、java代码编写 二、前言说明 1.构造xml文件 2.LayoutInflater 提到addview,首先要了解一下 savedInstanceState); setContentView(R.layout.activity_dynamic); mContext=this; initView(); mLl_parent.addView (addView1()); mLl_parent.addView(addView2()); } private void initView() { // TODO 初始化视图 mLl_parent=(LinearLayout StatedButton) findViewById(R.id.sbtn_navback); mSbtn_back.setOnClickListener(this); } private View addView1 tv1.setText("姓名:"); tv2.setText("李四"); tv2.setPadding(calculateDpToPx(50), 0, 0, 0);//设置边距 view.addView

    2.2K21

    Android开发之FrameLayout布局

    FrameLayout.LayoutParams(600,600)); textView1.setBackgroundColor(Color.RED); frameLayout.addView FrameLayout.LayoutParams(400,400)); textView2.setBackgroundColor(Color.YELLOW); frameLayout.addView FrameLayout.LayoutParams(200,200)); textView3.setBackgroundColor(Color.BLUE); frameLayout.addView FrameLayout.LayoutParams(100,100)); textView4.setBackgroundColor(Color.GREEN); frameLayout.addView

    46210

    Android源码解读-View绘制流程之setContentView

    (If we are, we use addView, below) temp.setLayoutParams(params); ViewGroup.java public void addView(View child, int index, LayoutParams params) { if (DBG) { 将DecorView显示出来 mDecor.setVisibility(View.VISIBLE); } ViewManager实现者WindowManager addView()内部实际是由 public void addView(@NonNull View view, @NonNull ViewGroup.LayoutParams params) { applyDefaultToken (params); mGlobal.addView(view, params, mContext.getDisplayNoVerify(), mParentWindow,

    22341

    android顶部导航条

    ;         llc.removeAllViews(); if(menuTag.equals(SlideMenuUtil.ITEM_MOBILE)){             llc.addView R.layout.item_mobile, null));         }else if(menuTag.equals(SlideMenuUtil.ITEM_WEB)){             llc.addView R.layout.item_web, null));         }else if(menuTag.equals(SlideMenuUtil.ITEM_CLOUD)){             llc.addView R.layout.item_java, null));         }else if(menuTag.equals(SlideMenuUtil.ITEM_SAFE)){             llc.addView Color.WHITE);             tvMenu.setGravity(Gravity.CENTER_HORIZONTAL);             menuLinerLayout.addView

    1.5K50

    扫码关注腾讯云开发者

    领取腾讯云代金券