我试图以编程方式将WebView插入我的代码

我有一个带有点击监听器的surfaceview。

当我点击它时,它将它缩小到宽度的一半和高度的一半……并将它放在右下角通过:

RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams( getWindowManager().getDefaultDisplay().getWidth()/2, getWindowManager().getDefaultDisplay().getHeight()/2 ); rlp.setMargins( getWindowManager().getDefaultDisplay().getWidth()/2, getWindowManager().getDefaultDisplay().getHeight()/2, 0, 0); 

它按预期工作,但我想在它后面动态地放置webView。

我试过了:

 WebView wv = makeWebView(); //makeWebView(); is a method of my mainActivity, which simple does. private Webview makeWebView(){ return new WebView(this); } 

我似乎无法让它落后于其他一切。 难道我做错了什么?

我的XML:

      

我的主要活动:

 package com.example.testfortim; import android.os.Bundle; import android.app.Activity; import android.graphics.Color; import android.view.Gravity; import android.view.Menu; import android.view.SurfaceView; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebView; import android.widget.LinearLayout; import android.widget.RelativeLayout; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //SurfaceView sv = new SurfaceView(); SurfaceView sv = (SurfaceView)findViewById(R.id.surfaceView1); sv.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub LinearLayout ll = (LinearLayout)findViewById(R.id.LL1); //LinearLayout.LayoutParams llp = (LinearLayout.LayoutParams)ll.getLayoutParams(); //RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(ll.getLayoutParams().width/2,ll.getLayoutParams().height/2);//(RelativeLayout.LayoutParams)ll.getLayoutParams(); RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams( getWindowManager().getDefaultDisplay().getWidth()/2, getWindowManager().getDefaultDisplay().getHeight()/2 ); rlp.setMargins(getWindowManager().getDefaultDisplay().getWidth()/2, getWindowManager().getDefaultDisplay().getHeight()/2, 0, 0); ll.setLayoutParams(rlp); WebView wv = makeWebView(); //wv.setBackgroundColor(0); //wv.setBackgroundResource(R.color.Blue); //wv.setBackgroundResource(Color.BLUE); wv.loadData("TEST", "text/html", "utf-8"); RelativeLayout rl = (RelativeLayout)findViewById(R.id.RR1); //rl.addView(wv); //ll.addView(wv); } }); } protected WebView makeWebView() { return new WebView(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } 

我调整了线性布局的大小并移动了它,所以Webview需要放在RR1的某个地方,从我收集的内容。 我正在查看各种文档,它或者不是通过随机性寻找或者可能,我只是没有掌握它。

你有关于如何实现这一点的想法吗?

作为旁注:我不知道为什么onCreateOptionMenu方法存在。 我不计划使用它,并将最终删除它。

试试rl.addView(wv, 0); 会做的伎俩:)