我有一个应该无法正常工作的简单任务。我在xml中定义了一个按钮,如下所示:
<Button
android:id="@+id/link1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:minWidth="256dip"
android:minHeight="0dp"
android:text="Button1"
android:textSize="15sp"
android:tag="1"
/>
此按钮连接到片段中的以下侦听器:
final Button link1 = (Button)getActivity().findViewById(R.id.link1);
link1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
System.out.println(link1.getTag().toString());
}
});
我遇到的问题是此onClick方法未在首次点击时触发。从第二次点击开始。这是一个带有单击侦听器的非常简单的按钮,因此我不确定为什么未注册第一次单击。
编辑:我发现,不仅在第一次单击屏幕之前按钮不起作用,而且在第一次单击屏幕之前,viewpager的选项卡没有滚动或未被选择。因此,这意味着从一开始直到首次触摸屏幕之前,在应用程序上目前无法进行任何手势或按钮按下操作。有什么可以像这样把所有东西都锁起来?
edit2:我的问题的根源是我设置了以下内容:
getWindow().requestFeature(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
上面代码的目的是删除某些手机(例如Nexus手机)上的导航按钮。了解更多:https://developer.android.com/training/system-ui/navigation.html
使用上面的代码,该应用将完全按预期隐藏手机上的软按钮,但是该应用将要求我在其余应用做出响应之前执行触摸事件。我将基于此提出一个新问题。
虽然这是一个老问题,但我也经历过。主要问题是focusableInTouchMode
财产。设置为true时,第一次元素不会触发点击,因为element元素获得了焦点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句