Some Tips About Layout Resource
<?xml version="1.0" encoding="utf-8"?> <ViewGroupxmlns:android="http://schemas.android.com/apk/res/android"android:id="@[+][package:]id/resource_name"android:layout_height=["dimension" | "match_parent" | "wrap_content"]android:layout_width=["dimension" | "match_parent" | "wrap_content"][ViewGroup-specific attributes] ><Viewandroid:id="@[+][package:]id/resource_name"android:layout_height=["dimension" | "match_parent" | "wrap_content"]android:layout_width=["dimension" | "match_parent" | "wrap_content"][View-specific attributes] ><requestFocus/></View><ViewGroup ><View /></ViewGroup><include layout="@layout/layout_resource"/> </ViewGroup>
<1>
<include>
attributes:
layoutYou can include any other layout attributes in the?<include>?that are supported by the root element in the included layout and they will override those defined in the root element.
Caution:?If you want to override layout attributes using the?<include>?tag, you must override both?android:layout_height?and?android:layout_width?in order for other layout attributes to take effect.
Another way to include a layout is to use?ViewStub. It is a lightweight View that consumes no layout space until you explicitly inflate it, at which point, it includes a layout file defined by its?android:layout?attribute. For more information about using?ViewStub, read?Loading Views On Demand.
Note:?One drawback of?ViewStub?is that it doesn’t currently support the?<merge>?tag in the layouts to be inflated.
<2>
?<requestFocus>
<3>
?<merge>
From:https://developer.android.com/guide/topics/resources/layout-resource.html
============================================================================================================
Define a ViewStub
ViewStub?is a lightweight view with no dimension that doesn’t draw anything or participate in the layout. As such, it's cheap to inflate and cheap to leave in a view hierarchy. Each?ViewStub?simply needs to include the?android:layout?attribute to specify the layout to inflate.
The following?ViewStub?is for a translucent progress bar overlay. It should be visible only when new items are being imported into the application.
<ViewStubandroid:id="@+id/stub_import"android:inflatedId="@+id/panel_import"android:layout="@layout/progress_overlay"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_gravity="bottom" />Load the ViewStub Layout
When you want to load the layout specified by the?ViewStub, either set it visible by calling?setVisibility(View.VISIBLE)?or call?inflate().
findViewById(R.id.stub_import)).setVisibility(View.VISIBLE); // or View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();Note:?The?inflate()?method returns the inflated?View?once complete. so you don't need to call?findViewById()?if you need to interact with the layout.
Once visible/inflated, the?ViewStub?element is no longer part of the view hierarchy. It is replaced by the inflated layout and the ID for the root view of that layout is the one specified by the?android:inflatedId?attribute of the ViewStub. (The ID?android:id?specified for the?ViewStub?is valid only until the?ViewStub?layout is visible/inflated.)
Note:?One drawback of?ViewStub?is that it doesn’t currently support the?<merge>?tag in the layouts to be inflated.
From:?https://developer.android.com/training/improving-layouts/loading-ondemand.html
總結(jié)
以上是生活随笔為你收集整理的Some Tips About Layout Resource的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Activity configChang
- 下一篇: Things That Cannot C