小编naj*_*ajm的帖子

Polymer 1.0中的隐藏属性

我从0.4-0.5时代就没有使用过Polymer,而且我习惯使用隐藏属性 <my-element hidden="{{foo != bar}}"></my-element>

现在在Polymer 1.0中,我看到必须使用方法中的计算值来处理任何不是直接布尔值的值.我的代码是这样的:

<my-element hidden="{{_computeHidden()}}"></my-element>

然后在脚本部分:

Polymer({
    is: 'super-element',
    properties: {...},
    _computeHidden: function(){
         console.log('its being called, mkay');
         return !(foo == bar);
    }
});
Run Code Online (Sandbox Code Playgroud)

现在在控制台中,页面刷新后消息会出现两次,但是当foo更改值时,元素不会消失.我究竟做错了什么?

polymer polymer-1.0

9
推荐指数
2
解决办法
2万
查看次数

ViewModel 观察扩展的 Activity

对于我的应用程序,我有核心类的基本实现,可以处理大部分样板代码。两个这样的实现是BaseActivityBaseViewModel。它BaseViewModel仅具有 getter 和 setter,SingleLiveEvent<Boolean>可通过以下方式访问BaseActivity

BaseActivity:

public class BaseActivity extends AppCompatActivity {

/* Some random variables */

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    BaseViewModel viewModel = ViewModelProviders.of(this).get(BaseViewModel.class);

    // Observe loading state
    viewModel.getLoadingEvents().observe(this, showLoading -> {
        if (showLoading != null) {
            showLoadingState(showLoading);
        }
    });

    // Observer error events
    viewModel.getErrorEvents().observe(this, throwable -> {
        if (throwable != null) {
            Alerts.displayError(this, throwable.getLocalizedMessage());
        }
    });
}

/* Some random methods */

}
Run Code Online (Sandbox Code Playgroud)

现在我还有其他活动(例如 …

java android mvvm viewmodel android-architecture-components

5
推荐指数
0
解决办法
574
查看次数

相对链接上的 Android WebView 新窗口空 URL

我实现了自定义WebViewsetSupportMultipleWindows()启用。因此,我也有一个WebChromeClient覆盖的自定义onCreateWindow()

对于大多数用途,我使用以下代码段在新窗口(即通过 打开target:_blank)中检索页面的 URL :

Message href = view.getHandler().obtainMessage();
view.requestFocusNodeHref(href);

String url = href.getData().getString("url");
Run Code Online (Sandbox Code Playgroud)

有空检查,但为了简单起见,我在上面的代码片段中删除了它们。现在的问题是,有时数据Bundle(通过 返回getData())具有相对链接的空 URL(即,href="/somepage"而不是href="https://www.example.com/somepage/")。

所以我搜索了 SO 并找到了另一个可能的解决方案:

WebView.HitTestResult result = view.getHitTestResult();
String url = result.getExtra();
Run Code Online (Sandbox Code Playgroud)

但是,这也会返回 null。如果我使用result.getType()它获取数据的类型,则返回 0,它映射到UNKNOWN_TYPE.`

我不确定为什么它为上述方法返回 null。注意,如果我禁用对多个窗口的支持,这些相同的链接就可以正常工作。但是,禁用此类支持不是一种选择。还有另一种方法可以从内部获取 URLonCreateWindow()吗?

android android-webview webchromeclient

5
推荐指数
1
解决办法
968
查看次数