如何在没有父级的情况下将xml膨胀为自定义视图

蓝空

我有一个简单的xml,我想将其作为Java视图对象进行充气。我知道如何扩大视图:

view = LayoutInflater.from(context).inflate(R.layout.alarm_handling, this);

但是,然后我有一个视图,它是父级(此子级)的子级。然后,麻烦的问题开始于设置layoutparameters并具有我不需要的额外布局。这些在xml中更容易实现。

使用一个Activity可以只调用:setContentView(),但是使用一个View是不可能的。

最后,我想有一个Java类(扩展了ViewSomething),可以在其他xml中引用它。我看过ViewStub,这几乎是答案,除了它是最终的:(

public class AlarmView extends ViewStub{ //could work if ViewStub wasn't final

public AlarmView (Context context, AttributeSet attrs) {
    super(context);

    //using methods from ViewStub:
    setLayoutResource(R.layout.alarm_handling);
    inflate();
}
}

那么如何做到这一点?扩展什么才能只调用setContentView()或setLayoutResource()?

我看了很多SO答案,但没有一个适合我的问题。

布迪斯

据我了解,您想应用的技巧与您尝试的技巧有所不同。

没有ViewStub并不是解决方案,因为ViewStub拥有处理所有事物的非常不同的方式。

假设出于示例的目的,您的XML布局是这样的(不完整,只是为了说明这一点):

<FrameLayout match_parent, match_parent>
     <ImageView src="Myimage", wrap_content, Gravity.LEFT/>
     <TextView text="hello world", wrap_content, Gravity.CENTER_HORIZONTAL/>
</FrameLayout>

那么您就不需要扩展FrameLayout并在其中添加此XML,因为那样的话,您将拥有两个FrameLayout(一个在另一个之中),而这只是浪费的内存和处理时间。我同意,是的。

但是,诀窍是merge在XML上使用

<merge match_parent, match_parent>
     <ImageView src="Myimage", wrap_content, Gravity.LEFT/>
     <TextView text="hello world", wrap_content, Gravity.CENTER_HORIZONTAL/>
</merge>

并在扩展FrameLayout的窗口小部件上正常膨胀

public class MyWidget extends FrameLayout
   // and then on your initialisation / construction
   LayoutInflater.from(context).inflate(R.layout.alarm_handling, this);

并且屏幕上的最终布局将只有1个FrameLayout。

祝您编码愉快!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel 4-如何在没有父级的情况下呈现@extends('parent')的子级视图

来自分类Dev

如何在没有多个背景 xml 的情况下更改自定义 toast 消息的背景?

来自分类Dev

如何在没有jshint警告的情况下以角度定义自定义包?

来自分类Dev

如何在没有xmlns / idQ的情况下将组添加到(VBA)自定义功能区?

来自分类Dev

如何在没有xmlns / idQ的情况下将组添加到(VBA)自定义功能区?

来自分类Dev

如何在没有自定义类的情况下将 UILabel 添加到 UICollectionViewCell?

来自分类Dev

如何在没有自定义HTML标签的情况下使用AngularJS?

来自分类Dev

如何在没有ControlTemplate的情况下创建WPF自定义控件?

来自分类Dev

如何在没有 <li> 的情况下显示欧芹自定义错误消息

来自分类Dev

如何在没有父元素的情况下将列表序列化为XML

来自分类Dev

如何在没有父元素的情况下将列表序列化为XML

来自分类Dev

如何通过simpleframework在没有父级的情况下使用元素列表解析XML

来自分类Dev

如何在没有自定义案例类的情况下将包含大量列的镶木地板文件读取到数据集?

来自分类Dev

如何在没有SDK或自定义应用ID的情况下创建Facebook分享按钮?

来自分类Dev

在没有spring的情况下如何在Hibernate Validator中使用自定义错误消息?

来自分类Dev

如何在没有jquery的情况下使用title属性创建自定义工具提示

来自分类Dev

未插入值时如何在没有自定义管道过滤的情况下显示整个表

来自分类Dev

在没有pom.xml的情况下运行自定义Maven目标

来自分类Dev

如何在不缩放drawable的情况下增加自定义视图扩展Button的填充?

来自分类Dev

如何在不扩展列表活动的情况下创建自定义列表视图?

来自分类Dev

如何在没有任何框架的情况下使用自定义注释验证器 POCO(没有 asp.net,没有 mvc,没有 ORM)

来自分类Dev

如何在没有父节点为空的情况下删除javascript中的节点

来自分类Dev

在没有父级所有者的情况下如何在Cloudkit中创建新的共享记录?

来自分类Dev

在没有父级所有者的情况下如何在Cloudkit中创建新的共享记录?

来自分类Dev

如何在没有警告的情况下在JavaFX中使用自定义CSS?

来自分类Dev

在片段中每个列表视图有多个文本视图的情况下,如何设置自定义适配器

来自分类Dev

在没有xml配置的情况下向所有存储库添加自定义行为

来自分类Dev

在没有xml配置的情况下向所有存储库添加自定义行为

来自分类Dev

如何在没有中间模型类的情况下将列表绑定到视图?

Related 相关文章

  1. 1

    Laravel 4-如何在没有父级的情况下呈现@extends('parent')的子级视图

  2. 2

    如何在没有多个背景 xml 的情况下更改自定义 toast 消息的背景?

  3. 3

    如何在没有jshint警告的情况下以角度定义自定义包?

  4. 4

    如何在没有xmlns / idQ的情况下将组添加到(VBA)自定义功能区?

  5. 5

    如何在没有xmlns / idQ的情况下将组添加到(VBA)自定义功能区?

  6. 6

    如何在没有自定义类的情况下将 UILabel 添加到 UICollectionViewCell?

  7. 7

    如何在没有自定义HTML标签的情况下使用AngularJS?

  8. 8

    如何在没有ControlTemplate的情况下创建WPF自定义控件?

  9. 9

    如何在没有 <li> 的情况下显示欧芹自定义错误消息

  10. 10

    如何在没有父元素的情况下将列表序列化为XML

  11. 11

    如何在没有父元素的情况下将列表序列化为XML

  12. 12

    如何通过simpleframework在没有父级的情况下使用元素列表解析XML

  13. 13

    如何在没有自定义案例类的情况下将包含大量列的镶木地板文件读取到数据集?

  14. 14

    如何在没有SDK或自定义应用ID的情况下创建Facebook分享按钮?

  15. 15

    在没有spring的情况下如何在Hibernate Validator中使用自定义错误消息?

  16. 16

    如何在没有jquery的情况下使用title属性创建自定义工具提示

  17. 17

    未插入值时如何在没有自定义管道过滤的情况下显示整个表

  18. 18

    在没有pom.xml的情况下运行自定义Maven目标

  19. 19

    如何在不缩放drawable的情况下增加自定义视图扩展Button的填充?

  20. 20

    如何在不扩展列表活动的情况下创建自定义列表视图?

  21. 21

    如何在没有任何框架的情况下使用自定义注释验证器 POCO(没有 asp.net,没有 mvc,没有 ORM)

  22. 22

    如何在没有父节点为空的情况下删除javascript中的节点

  23. 23

    在没有父级所有者的情况下如何在Cloudkit中创建新的共享记录?

  24. 24

    在没有父级所有者的情况下如何在Cloudkit中创建新的共享记录?

  25. 25

    如何在没有警告的情况下在JavaFX中使用自定义CSS?

  26. 26

    在片段中每个列表视图有多个文本视图的情况下,如何设置自定义适配器

  27. 27

    在没有xml配置的情况下向所有存储库添加自定义行为

  28. 28

    在没有xml配置的情况下向所有存储库添加自定义行为

  29. 29

    如何在没有中间模型类的情况下将列表绑定到视图?

热门标签

归档