【问题标题】:Adding dynamic web views in android在android中添加动态网页视图
【发布时间】:2014-03-06 12:09:37
【问题描述】:

我正在浏览有关此主题的各种链接。在我的情况下,我没有发现任何有用的东西。我想在 Android 中动态创建一个Web View。我不会在 xml 布局文件中添加任何内容。 现在我特别想做两件事: 1.我想把这个Web View的大小设置成自定义的宽高,设置在Layout的底部。 2. 在 Web 视图中加载页面后。单击 Web 视图应调整大小并全屏显示(这意味着在其父布局中的 Web 视图的宽度和高度上的 fill_parent)。

我当前的代码如下所示,由于全屏不适合屏幕内容,因此效果不佳:

public class MainActivity extends Activity {


    RelativeLayout layout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        layout=(RelativeLayout)findViewById(R.id.test);

        final WebView web = new WebView(this);

        //web.setId(1);
        web.getSettings().setJavaScriptEnabled(true);
        web.loadData("<script type=\"text/javascript\" src=\"http://www..myurl.com/myfolder/banner.php\"></script>", null, null);

        layout.addView(web, new LayoutParams(300,100));


        web.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                web.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
                return false;
            }
        }); 
    }   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

【问题讨论】:

  • 您能否发布两种场景的屏幕截图以便更好地理解?

标签: android webview android-webview


【解决方案1】:

如果我正确理解您的问题,您可能需要考虑以下方法。

首先,声明并初始化(父)相对布局,连同其参数,并将其设置为内容视图(删除 setContentView(R.layout.activity_main);)。

    final RelativeLayout layout = new RelativeLayout(this);

    final RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            getWindowManager().getDefaultDisplay().getWidth(),
            getWindowManager().getDefaultDisplay().getHeight());

    layout.setLayoutParams(params);

    setContentView(layout);

然后,初始化网页视图及其参数,并将“底部规则”添加到参数中。

    final WebView web = new WebView(this);

    web.getSettings().setJavaScriptEnabled(true);
    web.loadData(
            "<script type=\"text/javascript\" src=\"http://www..myurl.com/myfolder/banner.php\"></script>",
            null, null);

    RelativeLayout.LayoutParams webViewParams = new RelativeLayout.LayoutParams(
            300, 100);
    webViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

最后,将 Web 视图添加到您的(父级)相对布局并添加其侦听器。

    layout.addView(web, webViewParams);

    web.setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View arg0, MotionEvent arg1) {
            web.setLayoutParams(params);
            return false;
        }
    });

希望这是您所需要的。

干杯!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多