android – 动态更改布局

android – 动态更改布局,第1张

概述我正在尝试创建一个要搜索的活动,并且有两个不同的布局,每个布局都有不同的搜索条件.我想用旋转器来做这件事.不要真的有任何代码,因为我已经尝试删除了,但任何帮助表示赞赏. 您可以使用 Activity.setContentView()将活动的整个内容视图切换到onItemSelected回调中的新视图或布局资源,但我希望这不是您想要的,因为它将替换微调器本身. 如何在您的活动的内容视图中添加/替换子 我正在尝试创建一个要搜索的活动,并且有两个不同的布局,每个布局都有不同的搜索条件.我想用旋转器来做这件事.不要真的有任何代码,因为我已经尝试删除了,但任何帮助表示赞赏.解决方法 您可以使用 Activity.setContentView()将活动的整个内容视图切换到onItemSelected回调中的新视图或布局资源,但我希望这不是您想要的,因为它将替换微调器本身.

如何在您的活动的内容视图中添加/替换子视图?这可能是从XML资源中膨胀的视图,并且它们可以共享一些视图ID以减少所需的代码(或者您可以将行为委托给单独的类).

例如:

main.xml中:

<linearLayout ...> <!-- Root element -->    <!-- Put your spinner etc here -->    <FrameLayout androID:layout_height="fill_parent"                 androID:layout_wIDth="fill_parent"                 androID:ID="@+ID/search_criteria_area" /></linearLayout>

search1.xml:

<!-- Contents for first criteria --><linearLayout ...>    <TextVIEw androID:layout_wIDth="wrap_content"              androID:layout_height="wrap_content"              androID:background="#ffff0000"              androID:ID="@+ID/search_content_text" /></linearLayout>

search2.xml:

<!-- Contents for second criteria --><linearLayout ...>    <TextVIEw androID:layout_wIDth="wrap_content"              androID:layout_height="wrap_content"              androID:background="#ff00ff00"              androID:ID="@+ID/search_content_text" /></linearLayout>

然后在您的活动中,您可以像这样切换它们:

public class SearchActivity extends Activity {    // Keep track of the child vIEw with the search criteria.    VIEw searchVIEw;    @OverrIDe    public voID onItemSelected(AdapterVIEw<?> parent,VIEw vIEw,int position,long ID) {        VIEwGroup searchVIEwHolder = (VIEwGroup)findVIEwByID(R.ID.search_criteria_area);        if (searchVIEw != null) {            searchVIEwHolder.removeVIEw(searchVIEw);        }        int searchVIEwResID;        switch(position) {        case 0:            searchVIEwResID = R.layout.search1;            break;        case 1:            searchVIEwResID = R.layout.search2;            break;        default:            // Do something sensible        }        searchVIEw = getLayoutInflater().inflate(searchVIEwResID,null);        searchVIEwHolder.addVIEw(searchVIEw);        TextVIEw searchTextVIEw = (TextVIEw)searchVIEw.findVIEwByID(R.ID.search_content_text);        searchTextVIEw.setText("Boosh!");    }}
总结

以上是内存溢出为你收集整理的android – 动态更改布局全部内容,希望文章能够帮你解决android – 动态更改布局所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存