UI布局设计之加载xml
一般在activity中通过setContentView()将界面显示出来,但是如果在非activity中如何对控件布局设置操作,这需LayoutInflater动态加载
1.Activity中调用layout
1.setContentView(R.layout.main)
一旦调用,layout就会立刻显示UI
2.调用xml
mWidgetCanvas=(WidgetCellLayout)getFragmentManager().findFragmentById(
R.id.canvas_content);
其中publicfinalclassWidgetCellLayoutextendsFragment
Main.xml中定义
<fragment
android:id="@+id/canvas_content"
android:layout_width="@dimen/widget_canvas_width"
android:layout_height="@dimen/widget_canvas_height"
android:layout_alignParentTop="true"
android:layout_gravity="center_horizontal"
class="com.google.tv.launcher.ui.WidgetCellLayout"/>
2.非activity中操作layout
finalLayoutInflaterinflater=LayoutInflater.from(mContext);
LinearLayoutlayout=(LinearLayout)inflater.inflate(
R.layout.listview,null).findViewById(R.id.layout);
inflate只会把Layout形成一个以view类实现成的对象,有需要时再用setContentView(view)显示出来
LayoutInflater是用来找layout下xml布局文件,并且实例化!而findViewById()是找具体xml下的具体widget控件
ListViewlv=(ListView)layout.getChildAt(0);
或者
LayoutInflatermInflater=LayoutInflater.from(context);
ViewmyView=mInflater.inflate(R.layout.customToast,null);
TextViewsender=(TextView)myView.findViewById(R.id.sender);
TextViewmessage=(TextView)myView.findViewById(R.id.message);