我创建了一个带有一些图像和文本的fabric.js画布编辑器.但我想跟踪添加的图像或文本.这就是为什么我在添加这个对象时提供myId的原因.但是如何使用此自定义ID删除对象?
这是我添加文本的代码
var text = new fabric.Text(txt, { left: 30, top: 0, fill: "#"+col , fontFamily: family, id:MyID });
canvas.setActiveObject(text);
canvas.add(text);
Run Code Online (Sandbox Code Playgroud)
这里myID是我的自定义ID
但是如何使用此myID删除此文本?我试过了
canvas.remove(get_myID); //where get_myID is provided id by code
Run Code Online (Sandbox Code Playgroud)
但它不起作用.请帮忙.
使用 GNU sed(-r为了清楚起见,使用标志),输入字符串上的以下两个替换ab给出相同的结果:
s/(.)(.)|(.)(.)$/\2\1\3\4/
Run Code Online (Sandbox Code Playgroud)
和
s/(.)(.)$|(.)(.)/\1\2\4\3/
Run Code Online (Sandbox Code Playgroud)
两者都给ba. 看起来,替代方案(.)(.)(没有 的那个$)在两次替换中都成功,无论其位置是第一个还是第二个替代方案。为什么会这样呢?这种替代方案的决定因素是什么?
正则表达式的 POSIX 规范指定1当替代方案从不同位置开始时(在这种情况下,优先选择较早的一个),以及当它们从相同位置开始但具有不同长度(优先选择较长的一个)时,决胜局,但是当两个替代方案从相同位置开始且具有相同长度时,它似乎没有指定捕获组的行为,因此将其留给具体实现。
对匹配序列的搜索从字符串的开头开始,并在找到与表达式匹配的第一个序列时停止,其中“first”被定义为表示“在字符串中最早开始”。如果模式允许可变数量的匹配字符,因此从该点开始有多个这样的序列,则匹配最长的这样的序列。[...] – The Open Group 基本规范第 7 期,2018 年版
这是该现象的一个运行示例。
s/(.)(.)|(.)(.)$/\2\1\3\4/
Run Code Online (Sandbox Code Playgroud)
我想textView在单击按钮时将s 添加到表中。因此,这是我在OnClickListener内部所做的事情:
todoTable.addView(new TextView(this));
Run Code Online (Sandbox Code Playgroud)
我还想向此动态创建的添加属性,例如文本内容或背景TextView。那我该怎么办呢?Android Studio说有一个像这样的构造函数
new TextView(Context context, AttributeSet attrs)
Run Code Online (Sandbox Code Playgroud)
我可以在AttributeSet参数中包含哪些内容来为TextView提供值,例如“ Hello World!”?