我和我的同事都有Web应用程序的MVVM经验,而我们是本机android开发的新手.现在我们对android数据绑定有相反的看法 - 我不喜欢它的粉丝.
我的论点:
他的论点:
我做了一些调查,但关于它的讨论并不多.现在我想收集android数据绑定的优缺点.
讨论的方面包括但不限于:
我发现里面的文字<button>是自动垂直居中的,而里面的文字<div>是顶部对齐的.
我试图找出哪个CSS规则有所不同但失败了.
div,
button {
width: 4em;
height: 4em;
background-color: red;
padding: 0;
border: 0;
margin: 1em;
font-size: 1em;
font-family: Arial;
}
div {
text-align: center;
display: inline-block;
cursor: default;
box-sizing: border-box;
}Run Code Online (Sandbox Code Playgroud)
<div>text text</div>
<button>text text</button>
<div>text text text text</div>
<button>text text text text</button>
<div>text text text text text text</div>
<button>text text text text text text</button>Run Code Online (Sandbox Code Playgroud)
至于上面的例子,比较Chrome中的所有计算CSS规则,我只能找到一个不同的对 - align-items: stretchfor <div>while align-items: flex-startfor <button>.
但分配align-items: flex-start并没有帮助.所以我完全糊涂了.
令我感到困惑的是,文本 - …
我正在写一个TTF解析器.为了更好地理解TTF格式,我使用TTX提取C:\ Windows\calibri.ttf的".notdef"字形数据,如下所示.
<TTGlyph name=".notdef" xMin="0" yMin="-397" xMax="978" yMax="1294">
<contour>
<pt x="978" y="1294" on="1"/>
<pt x="978" y="0" on="1"/>
<pt x="44" y="0" on="1"/>
<pt x="44" y="1294" on="1"/>
</contour>
<contour>
<pt x="891" y="81" on="1"/>
<pt x="891" y="1213" on="1"/>
<pt x="129" y="1213" on="1"/>
<pt x="129" y="81" on="1"/>
</contour>
<contour>
<pt x="767" y="855" on="1"/>
<pt x="767" y="796" on="0"/>
<pt x="732" y="704" on="0"/>
<pt x="669" y="641" on="0"/>
<pt x="583" y="605" on="0"/>
<pt x="532" y="602" on="1"/>
<pt x="527" y="450" on="1"/>
many more points
</contour>
...some other xml …Run Code Online (Sandbox Code Playgroud) 我按照本教程从 React Router v5 迁移到 v6 。我想用react-testing-library来测试它,但是我的旧单元测试(使用本文档中的模式)停止工作。
我的 React Router v6 应用程序是这样的
const router = createBrowserRouter([
{
path: "/",
element: (
<>
<SiteHeader />
<Outlet />
</>
),
errorElement: <NotFound />,
children: [
{ path: "/", element: <Home /> },
{ path: "/posts", element: <Posts /> },
{ path: "/post/:postId", element: <PostPage /> },
],
},
]);
function App() {
return (
<div className="app">
<RouterProvider router={router} />
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它使用RouterProvider而不是Switch/ Route …
作为一个简化的例子,我有两个异步函数,foo和bar. bar需要 的结果foo,即bar取决于foo。我不知道首先调用哪个函数。
bar首先调用,bar将foo在foo完成后立即调用并启动自身。foo首先调用并完成,则bar可以使用foo.foo先调用并且bar在foo完成之前调用,则bar需要等待foo的结果。(不要对 调用新的调用foo,只需等待已触发的对 的调用foo)我怎样才能做到这一点?
是否可以注册一个异步函数依赖链(类似于 require.js 中的依赖define['foo'], function() { bar(); })?
我可以用$.deferred()它来实现吗?
如何?
我在 DLL 中有一个类,它没有用DataContract, JsonProperty等标记。现在我想将该类的实例序列化为 JSON 对象,并缩短 C# 属性名称。
例如,类是:
public class Foo
{
public string SomeLengthyCSharpPropertyName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以在 C# 名称和 json 名称之间创建映射。我不能直接添加如下
DataContract, JsonProperty属性。有什么解决方法吗?
[DataContract]
public class Foo
{
[JsonProperty("s")]
public string SomeLengthyCSharpPropertyName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我倾向于不创建具有相同但JsonProperty修饰属性的另一个类并将属性复制到新类然后序列化。
我想在浏览器(尤其是 Chrome)中录制/生成带有自定义视频(例如 .mp4、.webm)和摄像头录制的视频。
--------------------------------------------------
| | |
| Some Custom Video | My Camera |
| | |
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我可以MediaRecorder用来录制我的相机,并与我的视频并排播放录制的视频,并将录制的视频下载为 webm。
我在将视频和摄像头录制文件并排合并为一个视频文件时遇到了困难。
我首先研究了 MultiStreamMixer 并用它构建了一个演示(参见codepen)。
它的问题在于它会拉伸视频内容以适应相同的大小。我可以为这两个流指定不同的宽度/高度,但它没有按预期工作。我的相机被裁剪了。
我查看了 MultiStreamMixer 的源代码,发现问题在于其简单的布局逻辑。所以我把它的源代码作为参考并构建了我的自定义混音器。见代码笔。
它的工作方式:
AudioContext,createMediaStreamSource,createMediaStreamDestination等。MediaRecorder记录混合流。它为视频/相机添加了黑色边距,并且不会拉伸视频。
但是,我发现如果您在录制时在相机前挥手,则录制会非常模糊。
最初我以为是因为我没有对画布正确设置一些设置。但是后来我发现,即使是我的MultiStreamMixer demo或者WebRTC demo(你在录音中看不清茶壶上的文字)也会用canvas生成模糊的视频。
我在 webrtc 组中询问是否可以解决此问题。同时我调查了ffmpeg.js
我认为这会“工作”,但文件太大。让客户等待下载这个23MB的JS文件是不切实际的。
以上是我目前的调查。
另一个想法是并排播放视频和录制的视频,并使用屏幕录制 API 录制合并版本。(示例)。但这将要求客户等待与初始录制相同的时间来录制屏幕/选项卡。
将视频上传到服务器并在服务器中进行工作将是我最后的手段。
我认为GetData注册的任务Page_Load不会阻止加载Index.aspx,因为它是一个异步任务; 渲染页面5秒后,lblData被设置并反映在页面上Index.aspx.
但是,在我的情况下,加载Index.aspx被阻止5秒,等待异步GetData完成.仅在5秒后Index.aspx渲染.
这是预期的吗?或者GetData是同步运行,因为我做错了什么?
// Index.aspx.cs
public partial class Index : Page
{
protected string lblData;
protected void Page_Load(object sender, EventArgs e)
{
RegisterAsyncTask(new PageAsyncTask(GetData));
ExecuteRegisteredAsyncTasks();
}
public async Task GetData()
{
await Task.Delay(5000);
lblData = "Hello world!";
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
我加入Async="true"了Index.aspx.
我正在转换我的代码以遵循google C++ 风格指南。引用参数规则规定“所有通过引用传递的参数都必须标记为 const”和“输入参数是值或 const 引用,而输出参数是指针”。
关于签名void MyTable::LoadTable(ifstream &fin),我如何标记fin const给定的参数LoadTable调用一些非常量函数fin,例如fin.seekg?我认为fin应该被视为输入/输出参数,因此它有点特殊。在这种情况下,谷歌员工会怎么做?
更新:我知道谷歌风格指南有很多批评。我只是想知道谷歌员工如何解决这个问题,也许我找到了答案:还有另一个规则Streams读取“仅使用流进行日志记录”。也许他们只是在这种情况下不使用流。
asynchronous ×2
c# ×2
javascript ×2
android ×1
asp.net ×1
bezier ×1
c++ ×1
canvas ×1
css ×1
data-binding ×1
datacontract ×1
deferred ×1
dependencies ×1
ffmpeg ×1
glyph ×1
html ×1
jquery ×1
json ×1
json.net ×1
mvvm ×1
react-router ×1
reactjs ×1
truetype ×1
video ×1