小编fif*_*fth的帖子

layout_gravity ="center_vertical"和layout_centerVertical ="true"之间的区别是什么?

我有这样的布局

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:padding="@dimen/DP_3">

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/image"
        android:layout_centerVertical="true"
        android:text="xxx"/>

    <TextView
        android:id="@+id/custom_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"/>

    <TextView
        android:id="@+id/text"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="yyy"/>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我希望所有的孩子垂直放置在父RelativeLayout中,但是,layout_centerVertical ="true"做了伎俩,但layout_gravity ="center_vertical"什么也没做.我以为他们有同样的意思,但不是真的,我想念了吗?

android android-layout

4
推荐指数
2
解决办法
4789
查看次数

为什么 Android WebChromeClient 的 onCreateWindow 方法从未被调用?

我正在 webview 服务上构建我的应用程序,并尝试在另一个窗口中打开新的 url(既不在默认系统浏览器中,也不在同一 webview 中)。我设置了自己的 WebViewClient 和 WebChromeClient,如下所示,

public class MyWebViewClient extends WebViewClient {  
    @Override
    public boolean shouldOverrideUrlLoading (WebView view, String url) {
        view.loadUrl(url);        
        return true;
    }
}

public class MyWebChromeClient extends WebChromeClient {
    @Override
    public boolean onCreateWindow (WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
        WebView childView = new WebView(view.getContext());
        final WebSettings settings = childView.getSettings();
        settings.setJavaScriptEnabled(true);
        childView.setWebChromeClient(this);
        childView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
        transport.setWebView(childView);
        resultMsg.sendToTarget();
        Log.d(LOG_TAG, "onCreateWindow");   // never log
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我也确实将我的webview setSupportMultipleWindows …

android webview

2
推荐指数
1
解决办法
8632
查看次数

明星在函数定义中的含义是什么,比如"function*()"?

 function*() { .... }
Run Code Online (Sandbox Code Playgroud)

我刚刚在其他一些js代码中找到了这种形式的定义,这位明星的意思究竟是什么意思?谢谢

javascript syntax function ecmascript-6

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

rxjs,forkJoin(array).mergeMap(...),内部mergeMap永远不会被调用

在我的情况下,首先可以并行执行多个请求,这些请求完成后,将发送具有先前结果的另一个请求,伪代码看起来像

let uploads$ = [obs1$, obs2$, obs3$];
Observable.forkJoin(uploads$).mergeMap(
  res => {
    // never get called if uploads$ = []
    let data = someCalculation(res);
    return this.http.post('http://endpoint/api/resource', data);
  }
).subscribe(
  res => {
  }
);
Run Code Online (Sandbox Code Playgroud)

如果为uploads$ = [],则内部的mergeMap永远不会被调用。

有人可以帮忙吗?我正在使用RxJS 5.4

rxjs rxjs5

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