首先你要有个总控制器,管理UIScrollView的事件。将你想要添加的子页面,也就是子Controller的View添加到你这个scollView上面就可以了。代码就是[scrollView addSubview: subControllerview]
你的程序真的需要这么多的控件,即便正常编译通过了,到时你的程序也会比较卡的
一个比较好的方法是动态初始化,先初始必要的,其它等用户需要了再初始化,分为几个QWidget,先初始化一个,其它的等用户打开再进行初始化,用完马上把widget delete掉
对于UI的修改,你还是需要用UI线程去做,否则会报跨线程错误云云
你要分析一下你这个控件到底耗时在哪里,基本上显示过程不会耗很多,应该是你在获取生成该控件所用的数据耗时比较多,你这个时候可以单开线程去处理,并让UI线程显示正在处理或正在加载之类的,当那个线程已经完成了控件的生成以后,再传递给UI线程,让他把控件显示出来就行了,
如果你要加入动画,同样也是由UI线程去做,至于怎么实现,那就是动画那一方面的应用了
通过获取程序最上层ui控件这个方法是不行的,那个是微信程序内部查询数据库后显示的结果,你要得到的话,如果提供了ContentProvider去查询,如果微信没有提供就看看有没有提供aidl,我也没有做过类似的测试,我 只能给你这两个方法,你自己去看看吧。
布局(Layout)的概念是针对Activity的,Activity就是布满整 个Android设备的窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,每个需要显示的Activity都需要在AndroidManifestxml文件之中声明。
通常情况下,开发人员可以使用两种方式来创建UI组件,一种方式是使用XML方式来配置UI组件的相关属性,然后装载这些UI组件,这也是最常用的方式。但是有些特殊情况下,需要动态生成UI组件,则需要使用第二种方式,完全使用Java代码来创建UI组件。
XML布局文件是Android系统中定义的Layout的常用方式,所有布局文件必须包含在res/layout目录中,且必须符合Java的命名 规范。当在res/layout目录下新增了布局文件之后,Rjava文件会自动收录该布局资源,Java代码可通过setContentView方法 在Activity中显示该Layout。
setContentView(Rlayout<资源名称>);
在布局文件中可以指定UI组件的android:id属性,该属性的属性值代表该组件的唯一标识。通过ActivityfindViewById()访问,并且findViewById()必须在setContentView加载xml文件之后使用,否则会抛出异常。
findViewById(Rid)
Android应用的绝大部分UI组件都放在androidwidget包及其子包、androidview包及其子包中,Android应用的 所有UI组件都继承了View类。View类还有一个重要的子类:ViewGroup,ViewGroup类是所有布局管理器的父类。
ViewGroup容器控制其子组件的分布依赖于ViewGroupLayoutParams、ViewGroupMarginLayoutParams两个内部类。
ViewGroupLayoutParams提供两个XML属性设定组件的大小。
android:layout_height:指定该子组件的基本高度;
android:layout_width:指定该子组件的基本宽度。
这两个属性有三个基本值,这两个属性有三个特定的值:
fill_parent:指定组件的高度、宽度与父容器组件的一样。
match_parent:与fill_parent一样,Android22开始推荐使用。
warp_content:内容包裹。
ViewGroupMarginLayoutParams用于控制子组件周围的页边距。
android:layout_marginBottom(下边距);
android:layout_marginLeft(左边距);
android:layout_marginRight(右边距):
layout_marginTop(上边距)
对于View的尺寸,android提供了三种单位供选择使用:
px:像素。
dp:dpi,表示屏幕实际的像素。
sp:与scale无关的像素,与dp类似。
尺寸单位选择的技巧:如果设置长度、高度等属性时可以使用dp或sp,但是如果设置字体,需要使用px。如果使用dp或sp,系统会根据屏幕密度的变化进行转换。
为了适应各种界面风格,Android提供了五种布局规范,利用这五种布局,基本上可以在设备上随心所欲的摆放任何UI组件,这五种布局分别是:
FrameLayout(帧布局)。
LinearLayout(线性布局)
RelativeLayout(相对布局)。
TableLayout(表格布局)。
AbsoluteLayout(绝对布局)。
线性布局(LinearLayout)
LinearLayout是最常用的布局方式,在XML文件中使用标记。它会将容器里的UI组件一个一个挨着排列起来。但是LinearLayout不会换行,当UI组件超出屏幕之后,则不会被显示出来。LinearLayout有两个重要的XML属性:androidgravity(对齐方 式);android:orientation(排列方式)。
android:orientation(排列方式),设定了LinearLayout中包含的UI组件的排列方式,有两个选项vertical(竖向)、horizontal(横向,默认值)
android:gravity(对齐方式),设定LinearLayout中包含UI组件的对齐方式,其选项很多,常用上(top)、下(bottom)、左(left)、右(right)。
以上就是关于怎么向uiscrollview里面添加控件全部的内容,包括:怎么向uiscrollview里面添加控件、我的Qt程序,界面是在ui文件中拖的控件,某ui文件中有五百多个控件,其中有480个QCombobox控件,我直接用g、WPF 动态添加UI控件 界面假死 怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)