【问题标题】:Remove LinearLayout item on touch在触摸时删除 LinearLayout 项目
【发布时间】:2018-06-22 16:47:11
【问题描述】:

可以在 Xamarin Android 的 LinearLayout onClick 中删除特殊视图吗? 例如,我在 LinearLyout 中介绍了一些 TextView,我触摸了一个删除。我可以在没有 TextView 的 Id 的情况下执行此操作,我可以通过 LinearLayout 删除吗?逻辑方案:

var layout = FindViewById<LinearLayout>(Resource.Id.layout);
TextView text;
layout.Click += (sender, e) => {text = new TextView(this); text.Text="Text";    
layout.AddView(text) };


// And here I don't know how to make, something like this

layout.Click /*Click on text*/ += (sender,e) =  layout.Remove(/*OnTouched 
TextView in LinearLayout*/);

可以吗?

【问题讨论】:

    标签: android xamarin android-linearlayout


    【解决方案1】:

    您可以使用view.SetVisibility(ViewStates.Gone) 将视图从其父级层次结构中删除,尝试在Click 处理程序中执行此操作

    评论后编辑:

    那么您应该在每个视图上添加 Click 方法,而不是将其添加到布局中:

    text.Click /*Click on text*/ += (sender,e) =>
        sender.SetVisibility(ViewStates.Gone);
    

    【讨论】:

    • 是的,你说得对,但我忘了说我总是有新的实例,我必须通过 arg 获取这个 TextView。我修复代码。 ``
    • 那么您应该在每个视图上添加 Click 方法,而不是将其添加到布局中:text.Click /*Click on text*/ += (sender,e) =&gt; sender.SetVisibility(ViewStates.Gone);
    • 是的@AdricoM。我现在修复了代码。请问现在可以看了吗?我想使用像 ListView 这样的布局。像这样的东西。
    • 那你应该试试:var layout = FindViewById&lt;LinearLayout&gt;(Resource.Id.layout); TextView text; layout.Click += (sender, e) =&gt; {text = new TextView(this); text.Text="Text"; text.Click += (sender,e) =&gt; sender.SetVisibility(ViewStates.Gone); layout.AddView(text) };
    • 有些想错了。我无法正确使用 args 。工作只是这样,但只在最后一个实例中被删除。 var layout = FindViewById&lt;LinearLayout&gt;(Resource.Id.layout); TextView text; layout.Click += (sender, e) =&gt; {text = new TextView(this); text.Text="Text"; text.Click += (sender,e) =&gt; text.Visibility = ViewStates.Gone; layout.AddView(text) }; Args 绝对不行。
    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 2019-11-17
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多