Android:在视图下膨胀视图然后关闭顶视图

Android:在视图下膨胀视图然后关闭顶视图,第1张

概述我的问题是我有一个主屏幕,我想通过单击按钮动态生成其下的视图,然后将主视图从屏幕上滑动,显示其下方的视图.我已经完成了这个,但我觉得必须有一个更好的方法.我完成它的方式是非常有限的,因为你不能只在main下反复生成视图.我的主要XML文件如下所示:<?xmlversion="1.0"encodi

我的问题是我有一个主屏幕,我想通过单击按钮动态生成其下的视图,然后将主视图从屏幕上滑动,显示其下方的视图.我已经完成了这个,但我觉得必须有一个更好的方法.我完成它的方式是非常有限的,因为你不能只在main下反复生成视图.

我的主要XML文件如下所示:

<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="fill_parent"androID:layout_height="fill_parent">  <relativeLayout    androID:ID="@+ID/subpage"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent"    >  </relativeLayout>  <relativeLayout    androID:ID="@+ID/homescreen"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent"    >    <relativeLayout        androID:layout_wIDth="fill_parent"        androID:layout_height="fill_parent"        androID:background="@drawable/homebg"        >    </relativeLayout>  </relativeLayout></relativeLayout>

我删除了一些不必要的东西.这是重要的.请注意,主布局的第一个子节点是ID为“subpage”的相对布局.因为它是当我点击一个按钮时使用java将另一个布局膨胀到子页面布局然后我在屏幕上设置“主屏幕”布局的动画.看来我不应该事先声明子页面.我想我的问题是,有没有办法在现有布局下动态声明一个新的子布局?

================================================== =====================

编辑:问题的第2部分

我正在尝试使用addVIEw和应用程序崩溃.这是我用来尝试添加视图并将xml扩展到其中的代码.在下面的代码中,子视图是一个VIEwGroup,因为根据我的理解,你只能扩展到VIEwGroups,而不是常规视图.此外,“活动”在类的顶部定义为“私有活动活动=此”.什么可能导致崩溃的想法?

btnHelp.setonClickListener(new OnClickListener() {        public voID onClick(VIEw v) {            subVIEw = (VIEwGroup)new VIEw(getApplicationContext());            mainScreen.addVIEw(subVIEw,1);            LayoutInflater inflater = activity.getLayoutInflater();            inflater.inflate(R.layout.help, subVIEw);        }    });

================================================== =====================

编辑:问题的第3部分

还有一个问题.只要充气和滑落,一切都很好.但是,膨胀的视图中有一个按钮.我正在尝试为该按钮分配一个监听器,但它似乎不起作用.我正在通过在我一直在研究的btnHelp中调用布局inflater之后将监听器添加到按钮来实现它.这是代码:

btnHelp.setonClickListener(new OnClickListener() {        public voID onClick(VIEw v) {            LayoutInflater inflater = activity.getLayoutInflater();            mainScreen.addVIEw(inflater.inflate(R.layout.help, null),0);            homeScrn.startAnimation(slIDeleftOut);            btnBackHome = (ImageVIEw)findVIEwByID(R.ID.backMenuBtn);            btnBackHome.setonClickListener(goHome);        }    });

goHome是我在下面定义的处理程序:

private OnClickListener goHome = new OnClickListener(){    public voID onClick(VIEw v) {        Log.d("ClickEvent: ","btnBackHome Clicked");        homeScrn.startAnimation(slIDeRightIn);    }};

当我点击btnBackHome引用的按钮时,它什么也没做.我只是不确定是不是因为听众实际上没有被分配,有些东西是让按钮实际被点击,或其他东西.

解决方法:

在relativeLayout上调用addVIEw()以向其添加子项,其中子项被夸大(getLayoutInflater().inflate())或直接在Java中构造.

此外,您可以考虑使用VIEwFlipper,考虑到它正在执行您所寻求的内容(从子项到子项的动画过渡,在稳定状态下一次只能看到一个子项),可能代码较少.

总结

以上是内存溢出为你收集整理的Android:在视图下膨胀视图然后关闭顶视图全部内容,希望文章能够帮你解决Android:在视图下膨胀视图然后关闭顶视图所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存