【问题标题】:Android inflate view using an existing view objectAndroid使用现有视图对象膨胀视图
【发布时间】:2011-08-13 09:28:51
【问题描述】:

我有一个想要从资源模板创建的自定义视图。我的自定义视图构造函数接受设置为自定义视图附加信息的附加参数。

问题是当我膨胀视图时,我得到一个视图对象,它不是从自定义视图子类化的,因为 inflate 方法是静态的,并且返回一个通用的新视图而不是我的自定义视图的实例。

我是否正在寻找一种通过将自定义视图对象引用传递给视图来膨胀视图的方法。

公共类 MLballoonOverlayView 扩展视图 { 杂项信息 公共MLBalloonOverlayView(上下文上下文,MiscInfo miscInfo){ 超级(上下文); mMiscInfo = 杂项信息; } public View create(final int resource, final OverlayItem item, MapView mapView, final int markerID) { 视图组视图组=空; 查看气球 = View.inflate(getContext(), resource, viewGroup); // 我想返回这个对象,以便稍后我可以使用它的 mMiscInfo //返回这个; 返回气球; } }

【问题讨论】:

    标签: android methods view static inflate


    【解决方案1】:

    查看https://github.com/galex/android-mapviewballoons的代码后 我能够相应地更新我的代码。想法是从资源创建布局,然后将膨胀视图添加到扩展布局的类的实例中(如 Marcos 上面建议的那样)。

    public class MLBalloonOverlayView extends FrameLayout {
    
        public MLBalloonOverlayView(Context context, final OverlayItem overlayItem) {
            super(context);
            mOverlayItem = overlayItem;
        }
    
        public void create(final int resource, MapView mapView, final int markerID) {
            // inflate resource into this object
            TableLayout layout = new TableLayout(getContext());
            LayoutInflater.from(getContext()).inflate(resource, layout);
            TableLayout.LayoutParams params = new TableLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            params.gravity = Gravity.NO_GRAVITY;
            this.addView(layout, params);
        }
    }
    

    【讨论】:

      【解决方案2】:

      在你的物体上充气。

      public View create(final int resource, final OverlayItem item, 
                          MapView mapView, final int markerID) {
        LayoutInflater.from(getContext()).inflate(resource, this, true);
        return this;
      }
      

      【讨论】:

      • 不幸的是,这会将新膨胀的视图作为 ViewGroup 而不是 View 附加到“this”,出于我的预期目的,我需要一个 View 而不是 ViewGroup(我正在将视图添加到地图作为自定义气球视图)。
      • 如果您的视图是组合布局,您应该使用扩展布局的东西,而不仅仅是视图。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多