在我的应用程序的主要布局中,我有一个搜索任务按钮。现在,当用户单击该按钮时,我想将布局xml文件更改为search_layout.xml。 我不想为搜索任务创建新活动,并希望使用我的activity_main.java类进行编码。那么如何从现有的activity_main.xml中充实search_layout。
我的activity_main布局是带有折叠工具栏和Recycler视图的协调布局。
在我的search_layout.xml中,我有一个简单的相对布局。
那么如何应对呢? 我搜索了这个但是在任何地方我都知道如何将视图添加到现有视图中。但就我而言,我想彻底改变观点。
由于
答案 0 :(得分:2)
您只需在按钮的点击监听器中拨打setContentView(R.layout.your_search_layout)
即可。
示例 -
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.your_search_layout);
}
});
但是,使代码模块化始终是一种好习惯,因此您应该考虑使用Fragment
来实现此目的。
答案 1 :(得分:1)
您可以查看this question,但是,这不是一个好习惯,您应该考虑使用Fragment
或任何其他机制。通过这样做,您可以使用搜索逻辑混淆Activity
的逻辑。
答案 2 :(得分:0)
有两种方法可以做到:一种是将框架布局作为布局的父标签,然后创建两种布局:一种是您已经创建的,另一种是搜索布局框架,并使搜索布局GONE可见当您点击搜索时,可见其可见性。
第二种方法是为搜索布局创建新的XML布局文件并对其进行充气:
View v = getLayoutInflater().inflate(R.layout.YOUR_LAYOUT_ID, null);
此布局的元素将如下所示:
Button button=(Button)v.findviewbyid(R.id.your_button_id);
在您完全想要更改视图的情况下,更改视图的可见性将有所帮助
答案 3 :(得分:0)