我目前工作的一個項目中,我使用的WebView裝在RelativeLayout的,我放在ImageButton的在左下角:如何隱藏在網頁視圖前根據用戶輸入顯示視圖
<RelativeLayout
android:id="@+id/relativeLayout_maincontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
/>
<ImageButton
android:id="@+id/imageButton_call"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="2dp"
android:src="@android:drawable/ic_menu_call" />
</RelativeLayout>
這工作得很好。下一步我想到的是,按鈕有時會打擾我的用戶,當他們看不到按鈕後面的東西時...所以我試圖隱藏按鈕幾秒鐘後,當用戶滾動/觸摸/或任何(只是一些用戶輸入)我會顯示它,並在幾秒鐘後,按鈕應該再次消失。就像webview中的放大和縮小按鈕一樣。最好的辦法是使用與這些縮放按鈕相同的功能,但我找不到這樣做的方法。我基於How to show a view for 3 seconds, and then hide it?的知識創建了一個功能:
private void startCallButtonHidingThread() {
Thread thread = new Thread() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
runOnUiThread(new Runnable() {
@Override
public void run() {
callButton.setVisibility(ImageButton.GONE);
}
});
}
};
thread.start();
}
這很好。下一步驟是用戶輸入發生時顯示按鈕,所以我嘗試這樣的事情:
relativeLayout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(callButton.getVisibility() == ImageButton.GONE) callButton.setVisibility(ImageButton.VISIBLE);
startCallButtonHidingThread();
return false;
}
});
,或者:
relativeLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(callButton.getVisibility() == ImageButton.GONE) callButton.setVisibility(ImageButton.VISIBLE);
startCallButtonHidingThread();
}
});
,我試圖在網頁視圖相同。大部分時間只有一次,然後根本沒有任何反應。
因此,如果您有任何想法或更好的解決方案,請讓我知道。 我真的很感謝你的幫助!
用戶輸入在哪裏? – 2017-07-18 07:53:00