Cómo configurar WebView dentro de un LinearLayout

Estoy tratando de establecer webview dentro de un linearlayout. Acabo de crear un archivo de diseño lineal xml, barra de progreso y una webview dentro de la disposición lineal ..

<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="match_parent" > <ProgressBar android:id="@+id/progWeb" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/darker_gray" android:max="100" android:visibility="invisible" /> <WebView android:id="@+id/web" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> 

y el archivo java sólo muestra la barra de progreso. Webview no se muestra con este código

 public class MainActivity extends Activity { private WebView web; private ProgressBar progBar; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.activity_main); web = (WebView) findViewById(R.id.web); progBar = (ProgressBar) findViewById(R.id.progWeb); progBar.setVisibility(ProgressBar.INVISIBLE); String url = "http://www.google.com.pk/"; web.getSettings().setJavaScriptEnabled(true); web.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { System.out.println(progress); progBar.setProgress(progress); if (progress == 100) { progBar.setVisibility(ProgressBar.INVISIBLE); progBar.setProgress(0); } else { progBar.setVisibility(ProgressBar.VISIBLE); } } }); web.loadUrl(url); } } 

es necesario configurar la orientación de LinearLayout en vertical , el valor predeterminado es horizontal

Cambiar el diseño a

  <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="fill_parent" android:orientation="vertical"//==============> Here android:layout_height="fill_parent" > <ProgressBar android:id="@+id/progWeb" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/darker_gray" android:max="100" android:visibility="invisible" /> <WebView android:id="@+id/web" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> 

De forma predeterminada, LinearLayout establecerá la orientación Horizontal . especifique el tipo de orientación que resolverá su problema

 <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="match_parent" > <WebView android:id="@+id/web" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> 

tu actividad

 public class YourActivityName extends Activity{ private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().requestFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.aboutus); String url = "http://www.google.com.pk/"; getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); webView=(WebView)findViewById(R.id.webViewLoad); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setSupportZoom(true); webView.getSettings().setBuiltInZoomControls(true); webView.loadUrl(url); webView.setWebViewClient(new WebViewClient() { ProgressDialog progressDialog = new ProgressDialog(YourActivity.this); @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); Log.e("I am loading Here ","Start"); progressDialog.setTitle("Loading"); progressDialog.setMessage("Please wait...."); progressDialog.show(); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.e("I am loading Here ","Override"); view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { progressDialog.dismiss(); } }); } } 

Es mejor utilizar Webview dentro de RelativeLayout que Linear, debe resolver el problema.

 <ProgressBar android:id="@+id/progWeb" style="@style/progressbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/darker_gray" android:max="100" android:visibility="invisible" /> <WebView android:id="@+id/web" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/progWeb" android:layout_marginTop="28dp" /> 

Cambiar LinearLayout Orientación android:orientation="vertical" y cambiar el ancho de Progress Bar android:layout_width="wrap_content"

También cambia Progressbar Gravity. android:layout_gravity="center"

introduzca la descripción de la imagen aquí

  • Botón de Android con icono y texto
  • Cajón de navegación resaltar elemento seleccionado no funciona
  • Adición de título a la ventana de Android cuando se usa PhoneGap
  • Editar texto dentro de la vista de desplazamiento no se puede desplazar
  • Facebook Publicar en tu nombre no funciona en android facebook sdk 3.0.2
  • Cierre del cursor en onPostExecute no produce nada
  • Android: - Cómo agregar guión "-" en la palabra romper Android TextView debajo 6.0 OS
  • Diseño de fondo de Android de color XML
  • ¿Cómo alineo estos números en el decimal en android?
  • DrawerLayout con Google Maps
  • Cómo diseñar diseño lineal derecho a izquierdo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.