此文版权属于作者所有,任何人、媒体或者网站转载、借用都必须征得作者本人同意!
界面效果如下:
完全使用代码实现
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class MainActivity extends Activity {
private final static int TITLE_BAR_ID = 1;
private final static int OPEN_BTN_ID = 101;
private final static String START_URL = "http://www.uc.cn";
private RelativeLayout mBaseLayout;
private EditText mUrlView;
private Button mOpenBtn;
private WebView mWebView;
private void initCtrl() {
mBaseLayout = new RelativeLayout(this);
mBaseLayout.setBackgroundColor(Color.WHITE);
// title bar
RelativeLayout titleBar = new RelativeLayout(this);
titleBar.setId(TITLE_BAR_ID);
{
mOpenBtn = new Button(this);
mOpenBtn.setId(OPEN_BTN_ID);
mOpenBtn.setText("open");
mOpenBtn.setOnClickListener(mOnOpenBtnClicked);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
titleBar.addView(mOpenBtn, lp);
}
{
mUrlView = new EditText(this);
mUrlView.setBackgroundColor(Color.LTGRAY);
mUrlView.setText(START_URL);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
lp.addRule(RelativeLayout.LEFT_OF, OPEN_BTN_ID);
titleBar.addView(mUrlView, lp);
}
{
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
mBaseLayout.addView(titleBar, lp);
}
// webview
{
mWebView = new WebView(this);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
lp.addRule(RelativeLayout.BELOW, TITLE_BAR_ID);
mBaseLayout.addView(mWebView, lp);
}
setContentView(mBaseLayout);
}
private View.OnClickListener mOnOpenBtnClicked = new View.OnClickListener() {
@Override
public void onClick(View v) {
mWebView.loadUrl(mUrlView.getText().toString());
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initCtrl();
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient());
mWebView.loadUrl(START_URL);
}
}
使用 layout xml 实现
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
<RelativeLayout
android:id="@+id/titleBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@android:color/darker_gray">
<EditText
android:id="@+id/url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/open"
android:text="@string/start_url"/>
<Button
android:id="@+id/open"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="@string/open"/>
</RelativeLayout>
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_below="@+id/titleBar" />
</RelativeLayout>
对应的控制代码
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText mUrlView;
private Button mOpenBtn;
private WebView mWebView;
private View.OnClickListener mOnOpenBtnClicked = new View.OnClickListener() {
@Override
public void onClick(View v) {
mWebView.loadUrl(mUrlView.getText().toString());
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mUrlView = (EditText) findViewById(R.id.url);
mOpenBtn = (Button) findViewById(R.id.open);
mWebView = (WebView) findViewById(R.id.webview);
mOpenBtn.setOnClickListener(mOnOpenBtnClicked);
mWebView.setWebViewClient(new WebViewClient());
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mOnOpenBtnClicked.onClick(mOpenBtn);
}
}