是否可以从屏幕上删除(滑下)视图? Android的

时间:2012-11-22 19:30:27

标签: android android-layout user-interface

是否可以从屏幕中删除视图?的Android

例如我有一些布局,其中包含3个布局;

layout_1 layout_2 layout_3

是否可以点击layout_1,然后将其移离屏幕,您将收到可见的

layout_2 layout_3

提前致谢。

upd:问题是,我需要顺利地滑下这个视图。看起来像Facebook的侧边栏。但另一件事是,删除layout_1后的其他两个布局应该被拉伸以适应父布局。

4 个答案:

答案 0 :(得分:5)

将视图设为id。

然后做

(LinearLayout) linLayout = (LinearLayout) findViewById(R.id.layout_1);
linLayout.setVisibility(View.GONE);

(将它投射到它所输入的内容。)

或者直接用:

findViewById(R.id.layout_1).setVisibility(View.GONE);

修改:关注您的新信息以及我评论过的问题/答案:

(LinearLayout) linLayout = (LinearLayout) findViewById(R.id.layout_1);
Animation animation = new TranslateAnimation(0, 500,0, 0); //May need to check the direction you want.
animation.setDuration(1000);
animation.setFillAfter(true);
linLayout.startAnimation(animation);
linLayout.setVisibility(View.GONE);

如果你希望其他2也逐渐占用空间,你可能需要更高级的东西。

答案 1 :(得分:1)

是的,只需使用removeView()

答案 2 :(得分:0)

我假设您要完全更改页面的视图和功能。在这种情况下,您应该开始一个新活动或查看片段和片段管理器。

修改

好的,如果你有不同的视图作为3个不同的片段,你可以使用片段管理器来充气和删除它们

FragmentTransaction ft_main = getFragmentManager().beginTransaction();
//note the following line sets the fragment Tag to "layout_1_fragment" you can
//use this to retrive and dismiss it later
ft_main.replace(R.id.WhateverViewYoureInflatingInto, new Layout_1_Fragment(), "layout_1_fragment");
ft_main.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft_main.commit();

删除片段执行以下操作:

FragmentTransaction ft_main = getFragmentManager().beginTransaction();
ft_main.remove(getFragmentManager().findFragmentByTag("layout_1_fragment"));
ft_main.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft_main.commit();

使用此代码,您可以动态地从屏幕上充气并删除碎片。

注意:删除片段时不会销毁片段,所以如果要重新附加片段我建议检查是否

getFragmentManager().findFragmentByTag("layout_1_fragment") == null

如果没有重用现有的片段

答案 3 :(得分:0)

使用OnClickListenerView.setVisibility(int)