현재 RelativeLayout에 포장 된 webview를 사용하는 프로젝트에서 작업 중이며 왼쪽 하단에 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>
잘 작동합니다. 내가 생각하고있는 다음 단계는 단추 뒤에 물건이 보이지 않을 때 단추가 때때로 사용자를 방해 할 수 있다는 것입니다. 그래서 몇 초 후에 단추를 숨기려고 시도하고 사용자가 스크롤/터치 할 때/또는 무엇이든지 (단지 일부 사용자 입력) 나는 그것을 표시 할 것이고 몇 초 후에 버튼은 다시 사라질 것입니다. 웹보기의 확대/축소 버튼과 같습니다. 가장 좋은 방법은 이러한 줌 버튼과 동일한 기능을 사용하는 것이지만이를 수행 할 수있는 방법을 찾지 못했습니다. 나는 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();
}
});
와 나는 웹보기에 시도 동일. 대부분의 경우 시간이 한 번만 작동하고 전혀 반응이 없습니다.
어떤 아이디어 나 더 나은 해결책이 있다면 알려 주시기 바랍니다. 정말 고맙습니다.
사용자 입력 처리기를 사용하려고? –