在我的应用程序中,我有这样的布局:
1)主视图可以移动和拖动。
2) 一些控制器可以添加到主视图内部。他们的位置可以设置为TopLeft
或其他。这里的TopLeft
意思是相对于主视图。(见这张图片)
现在我尝试通过扩展来实现这一点ViewGroup
,而 themain View
和 thecontrollers
都是从View
.
这就是我现在所做的:
class MyViewContainer extends ViewGroups{
@Override
public void onLayout(boolean changed,int l,int t,int b, int r){
for(int i=0,len=getChildCounts,i<len;i++){
View v=getChildAt(i);
if(v instanceof MainView){
v.layout(l,t,b,r);
}
else if(v instanceof MyController){
//here do not now know how to layout the childs according to their position
}
}
}
}
abstract MyController extends View{
}
class ZoomController extends MyController{
@Override
public void onDraw(Canvas c){
}
}
class AnotherController extends MyController{
@Override
public void onDraw(Canvas c){
}
}
class MainView extends View{
@Override
public void onDraw(Canvas c){
}
}
如您所见,我不知道如何布局MyControllers
. 因为我不完全知道controller
. 因为控制器的大小取决于它的绘制方式。
怎么做?