我想动态创建web view
,然后点击将网页视图的大小更改为fill_parent
,再次点击后,它应恢复为我自定义设置的先前尺寸。到目前为止,我已经能够动态创建一个Web视图,并尝试在点击时传递新参数,但会发生的情况是webview覆盖整个屏幕,并且在第二次点击后不会恢复到之前的大小。
感谢任何帮助。
我目前的代码与此类似。
public class MainActivity extends Activity {
RelativeLayout layout;
Boolean flag=true;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layout=(RelativeLayout)findViewById(R.id.test);
TextView textDynamic = new TextView(this);
textDynamic.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
textDynamic.setText("Hello Android");
layout.addView(textDynamic);
final WebView web = new WebView(this);
web.getSettings().setJavaScriptEnabled(true);
final RelativeLayout.LayoutParams webViewParams = new RelativeLayout.LayoutParams(
300, 100);
webViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
final RelativeLayout.LayoutParams webViewNewParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
web.loadData("<script type=\"text/javascript\" src=\"http://myurl.com/test.php\"></script>", null, null);
//RelativeLayout.LayoutParams webViewParams = new RelativeLayout.LayoutParams(
// 300, 100);
// final RelativeLayout.LayoutParams webViewNewParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
layout.addView(web, webViewParams);
web.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
if(arg1.getAction()==MotionEvent.ACTION_UP)
{
Log.e("test", "msg");
layout.removeView(web);
//web.getSettings().setDefaultZoom(ZoomDensity.FAR);
if (flag=true)
{
flag=false;
web.getSettings().setLoadWithOverviewMode(true);
web.getSettings().setUseWideViewPort(true);
layout.addView(web, webViewNewParams);
}
else
{
flag=true;
web.getSettings().setLoadWithOverviewMode(false);
web.getSettings().setUseWideViewPort(false);
//webViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
layout.addView(web, webViewParams);
}
// web.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
//web.setLayoutParams(webViewNewParams);
//web.setLayoutParams(new RelativeLayout.LayoutParams(getWindowManager().getDefaultDisplay().getWidth(),getWindowManager().getDefaultDisplay().getHeight()));
//web.setLayoutParams(new RelativeLayout.LayoutParams(getWindowManager().getDefaultDisplay().getWidth(),getWindowManager().getDefaultDisplay().getHeight()));
}
return false;
}
});
}
}
答案 0 :(得分:1)
这是正常运行的代码......
public class MainActivity extends Activity {
RelativeLayout layout;
boolean Expanded = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layout = (RelativeLayout) findViewById(R.id.layout);
final RelativeLayout.LayoutParams webViewParams = new RelativeLayout.LayoutParams(500, 250);
webViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
final RelativeLayout.LayoutParams webViewNewParams = new RelativeLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
final WebView myBrowser = new WebView(this);
myBrowser.loadUrl("https://www.google.co.in");
layout.addView(myBrowser, webViewParams);
myBrowser.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if (arg1.getAction() == MotionEvent.ACTION_UP) {
if (Expanded) {
myBrowser.setLayoutParams(webViewParams);
Expanded = false;
} else {
myBrowser.setLayoutParams(webViewNewParams);
Expanded = true;
}
}
return false;
}
});
}
}
答案 1 :(得分:0)
根据我的研究工作,Web视图无法调整大小。意味着增加Web视图的大小后,您无法再次减小大小。 see this for more info
答案 2 :(得分:0)
你的问题在这里...... 变化
if (flag=true) {
到
if (flag==true) {
休息将正常工作