2016-01-22 87 views
-4

视图在Android和iOS中的布局方式之间的根本区别是什么?我已经在Android中创建了几个应用程序,其视图仅用XML设计,但是我还没有遇到与我在iOS经常使用的基于网格的绘图机制相对应的Android。在Android中创建自定义视图时,我通常会以编程方式创建LinearLayout或您有什么,然后实例化必需的组件,然后瞧。然而,我已经得到习惯的视图/视图控制器在IOS,编程方式进行绘制的使用,其通常需要这样Android视图与iOS视图

let profileFrame = CGRectMake(0, 48, 80, 80) 
    profileImageView = UIImageView.init(frame: profileFrame) 
    self.addSubview(profileImageView) 
    self.bringSubviewToFront(profileImageView) 

一些逻辑因此,没有存在一个模拟到这种视图帧创建/配售在Android的超级视图内?或者Android布局的XML特性是否阻止了这种能力?

+1

“在Android中创建自定义视图时,我通常会以编程方式创建LinearLayout或您有什么,然后实例化必需的组件,然后瞧。” - 所以你已经在Android中以编程方式创建了布局,但是你正在问如何以编程方式在Android中创建布局? –

+1

据我所知,你需要一个等同于iOS的框架UIView到Android,不是吗?因为你的问题有点不清楚,所以我不太明白。 Android中的[android.graphics.Rect类](http://developer.android.com/reference/android/graphics/Rect.html#Rect(int,int,int,int))可能是你想要的吗? – Fllo

+0

我在问如何以类似于iOS的性质以编程方式绘制视图,其中将子视图添加到超级视图而不是添加XML元素。我没有问过如何以编程方式在Android中创建布局......有三个句子以我的帖子中的问号结尾“Android与iOS中的视图布局之间的根本区别是什么?......那么是否存在类似于这种视图框架创建/放置在Android的超级视图中?还是Android布局的XML特性阻止了这种能力?“没有一个提出这个问题。 – Coach

回答

1

你想要的是AbsoluteLayout。除非你真的不想这样做。请注意,使用它的原因很少,很多原因都没有。主要原因是屏幕尺寸和设备之间的密度差异使得几乎不可能在没有很多纪律的情况下获得正确的结果。它适用于iOS的原因是设备尺寸和密度的有限数量使UI更加简单,后台操作系统可以处理它。不是这种情况,你必须自己做。

您也可以编程方式在代码中创建LinearLayouts,RelativeLayouts等。它通常不被推荐 - 它很难快速阅读和编辑。有些情况下,它的有用/必要。