Ank*_*ria 6 xml layout android android-layout android-inflate
在我的应用程序的主布局中,我有一个搜索任务按钮。现在,当用户单击该按钮时,我想将布局 xml 文件更改为 search_layout.xml。我不想为搜索任务创建一个新活动,并想使用我的 activity_main.java 类进行编码。那么如何从现有的 activity_main.xml 膨胀 search_layout 。
我的activity_main 布局是使用Collapsing 工具栏和Recycler 视图协调布局。
在我的 search_layout.xml 我有一个简单的相对布局。
那么如何处理呢?我搜索了这个,但到处都可以找到如何将视图添加到现有视图中。但就我而言,我想完全改变看法。
谢谢
您只需调用setContentView(R.layout.your_search_layout)
按钮的点击监听器即可。
例子 -
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.your_search_layout);
}
});
Run Code Online (Sandbox Code Playgroud)
然而,使代码模块化始终是一个好习惯,因此您应该考虑使用Fragment
s 来实现这一点。
小智 1
有两种方法可以做到这一点:一种是使框架布局成为布局的父标记,然后创建两种布局:一种是您已经创建的布局,另一种是在其上框架的搜索布局,并使搜索布局可见,当您单击搜索使其可见。
第二种方法是为搜索布局创建新的 XML 布局文件,并像这样膨胀它:
View v = getLayoutInflater().inflate(R.layout.YOUR_LAYOUT_ID, null);
Run Code Online (Sandbox Code Playgroud)
这个布局的元素将像这样:
Button button=(Button)v.findviewbyid(R.id.your_button_id);
Run Code Online (Sandbox Code Playgroud)
更改视图的可见性将有助于您完全想要更改视图的情况