What should I pass for root when inflating a layout to use for a MenuItem's ActionView?

后端 未结 3 1521
暖寄归人
暖寄归人 2021-02-01 14:23

I have an ImageView that I attach to a MenuItem as its ActionView (the item appears in the ActionBar). The layout for this vi

3条回答
  •  礼貌的吻别
    2021-02-01 14:46

    You have look on this. it nicely explains the Layout Inflator as well.

    There are two usable versions of the inflate() method for a standard application:

    inflate(int resource, ViewGroup root)
    inflate(int resource, ViewGroup root, boolean attachToRoot)
    

    The first parameter points to the layout resource you want to inflate. The second parameter is the root view of the hierarchy you are inflating the resource to attach to. When the third parameter is present, it governs whether or not the inflated view is attached to the supplied root after inflation.

    It is these last two parameters that can cause a bit of confusion. With the two parameter version of this method, LayoutInflater will automatically attempt to attach the inflated view to the supplied root. However, the framework has a check in place that if you pass null for the root it bypasses this attempt to avoid an application crash.

    Many developers take this behavior to mean that the proper way to disable attachment on inflation is by passing null as root; in many cases not even realizing that the three parameter version of inflate() exists.

    More on Layout Inflation

提交回复
热议问题