0

我有一個WebView,我想添加自己的後退按鈕,webview是專門設置用於在應用程序中查看pdf的。我添加了按鈕並且它可以工作,但是我無法調整它的大小或將它移動到屏幕上,因此pdf控件位於按鈕下方,無法使用。按鍵佈局參數似乎是沿着這些路線的東西(這是不是在代碼的任何地方這正是它似乎是)ImageButton添加到webview將不會調整

<ImageButton 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    /> 

下面是活動

public class PDFview extends Activity { 

    ImageButton im; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     Intent intent = getIntent(); 
     String LinkTo = intent.getExtras().getString("link"); 
     WebView mWebView= new WebView(this); 
     im = new ImageButton(this); 
     im.setImageResource(R.drawable.back); 
     im.setLayoutParams(new LayoutParams(100,100)); 
     im.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       exitPDF(); 

      } 
     }); 
     im.setLeft(0); 
     im.setTop(200); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+LinkTo); 
     mWebView.addView(im); 
     setContentView(mWebView); 
    } 

回答

0

我有一個WebView,我想將我自己的後退按鈕添加到

更準確地說,您有一個活動或片段,您希望在其中有一個WebView和一個返回鍵。

我無法調整它的大小或移動到屏幕

這是因爲WebView是不是真的設計容納其他部件周圍。

創建一個包含RelativeLayout的XML佈局資源,該資源依次持有WebViewImageButton。確保ImageButton孩子RelativeLayout的(與WebView是第一個),所以ImageButton是在Z軸更高,漂浮在WebView(因爲這似乎是你想要的)。然後,使用適當的RelativeLayout定位規則將ImageButton放在需要的位置。

之所以這麼說:

  • 考慮不具有背按鈕所有,而是使用Android的自身BACK按鈕,通過覆蓋onBackPressed()。在有可用的網絡歷史記錄(或者您正在使用按鈕進行的​​任何操作)的情況下使用該功能,然後在活動中沒有更多內容返回後再撥打super.onBackPressed(),以便用戶可以退出該活動。

  • 如果因任何原因而無法接受,請考慮將「後退」功能置於操作欄中。讓一個小部件漂浮在WebView的頂部意味着用戶想要閱讀的內容將無法閱讀,因爲該按鈕不可用。

+0

我試過了,當試圖調用webView上的getSettings()時,得到了一個空指針。 我不能做任何一種替代方案,因爲這是在商業環境中使用的,我們不希望用戶訪問webview,而是指向一個特定站點 – Cob50nm

+0

@ Cob50nm:「I試圖在webView上調用getSettings()時得到一個空指針「 - 那麼你需要修正你有的任何bug,比如沒有通過findViewById()檢索'WebView'。 「我不能做任何一種選擇」 - 是的,你可以。操作欄與您的「WebView」和「ImageButton」一樣,也是應用程序的一部分。而且,除非你正在使用自己的ROM Mod(或者在Android 4.x手機上運行這個功能,你可以隱藏導航欄),否則無論你喜歡與否,用戶都會有BACK按鈕。 – CommonsWare