Pad*_*990 1 java android margins webview
我需要以编程方式将边距添加到webview.我想做类似下面的事情:
public void setSideMargin(final int sideMargin, int id) {
WebView webView = (WebView) ((Activity) context)
.findViewById(id);
WebView.LayoutParams p = new WebView.LayoutParams(
WebView.LayoutParams.MATCH_PARENT,
WebView.LayoutParams.WRAP_CONTENT);
p.leftMargin = sideMargin;
p.rightMargin = sideMargin;
webView.setLayoutParams(p);
}
Run Code Online (Sandbox Code Playgroud)
我知道这显然是错误的,但有什么我可以做的以编程方式添加边距吗?谢谢
njz*_*zk2 10
要理解的LayoutParams
是:LayoutParams
不依赖于它设置的元素,而是依赖于父元素.
它是父母关于元素定位的指示.
因此,如果你WebView
在一个LinearLayout
,getLayoutParams
会得到你LinearLayout.LayoutParams
.
这意味着,为了拥有MarginLayoutParam
支持边距的LayoutParams 的后代,您的WebView必须放在ViewGroup
支持边距的位置,例如LinearLayout
或RelativeLayout
.(参见后代列表http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html).换句话说,WebView
它本身不支持保证金.
在这种情况下,您应该LayoutParams
从中转换WebView
为:
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) webView.getLayoutParams();
Run Code Online (Sandbox Code Playgroud)
完成后,您可以修改边距:
p.leftMargin = sideMargin;
p.rightMargin = sideMargin;
webView.setLayoutParams(p);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7386 次 |
最近记录: |