2013-10-30 42 views
1

我有一個片段,包含一個LinearLayout包含一個webview,當改變我的webview中的html字符串,有時我的LinearLayout的背景沒有出現。 我的片段:我的LinearLyout的圖像背景,包含一個webview,沒有出現

`

<ScrollView 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:scrollbarStyle="outsideOverlay" 
     tools:context=".NewsFragment" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <LinearLayout 
      android:id="@+id/linearLayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="10dp" 
      android:background="@drawable/bg_item_single" 
      android:orientation="vertical" 
      android:padding="@dimen/list_margin" > 

      <TextView 
       android:id="@+id/text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="16dp" 
       android:textColor="#000" 
       android:textSize="20sp" /> 

      <WebView 
       android:id="@+id/webview" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="@drawable/transparent" /> 
     </LinearLayout> 
    </LinearLayout> 

</ScrollView> 

`

如果我有一個的LinearLayout在其他的LinearLayout僅僅是對我的滾動視圖的底部空間,是沒有問題的。

我的代碼: `

private void populate() { 

     textView.setText(grant.getName()); 
     // Configure w`enter code here`ebview 
     webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
     webview.getSettings().setJavaScriptEnabled(false); 
     webview.setBackgroundColor(Color.argb(1, 0, 0, 0)); 
     webview.setOnTouchListener(new View.OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       return (event.getAction() == MotionEvent.ACTION_MOVE); 

      } 
     }); 

     webview.loadDataWithBaseURL("file:///android_asset/", createFullHtmlPage("styles.css", grant.getGrantDescription(), 0), "text/html", "UTF-8", null); 

    } 

`

我不認爲是有問題。

回答

1

我固定我的問題。我使用了一個形狀作爲我的LinearLayout的背景,但是如果webview太大,出於未知原因,該形狀不起作用並且不會出現。因此,現在我使用彩色背景和2個圖像來創建底角和頂角。

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scrollbarStyle="outsideOverlay" 
    tools:context=".NewsFragment" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:paddingBottom="50dp" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="10dp" 
      android:orientation="vertical" > 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/bg_item_top" /> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@color/bg_item_default" 
       android:orientation="vertical" > 

       <TextView 
        android:id="@+id/text" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_margin="16dp" 
        android:textColor="#000" 
        android:textSize="20sp" /> 

       <WebView 
        android:id="@+id/webview" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_margin="@dimen/list_margin" /> 
      </LinearLayout> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/bg_item_bottom" /> 
     </LinearLayout> 
    </LinearLayout> 
</ScrollView> 
1

嘗試設置android:layout_height="wrap_content",並刪除此視圖的透明背景。

<WebView 
    android:id="@+id/webview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/transparent" /> 
+1

我嘗試過,但它並沒有解決我的問題,但你說得對'機器人:背景=「@繪製/透明」'是useless.'webview.setBackgroundColor(Color.argb(1,0 ,0,0));'使透明背景。 – Dichoben

0

如何undestud問題是在這條線

webview.setBackgroundColor(Color.argb(1, 0, 0, 0)); 

試試這個

webview.setBackgroundResource(color.blue); 
+0

我不想爲我的webview提供藍色背景,但需要透明背景。未出現的背景是包含我的webview的linearLayout背景。 – Dichoben

+0

使顏色透明:'webview.setBackgroundResource(new Color(100,200,50,100));' - > here(100,200,50) - 是你的顏色,最後100 - 透明coeficient(0 - 255)。嘗試改變它,我認爲你可以解決你的問題 –