在我的Android Native代码中,我为我需要在onCreate()中显示的PopUp编写了OnClick Listener。
我想用本机而不是JS写这个。
oc new-project production
弹出窗口显示,但是onClickListner没有被触发,并且setTouchListener也不起作用。我错过了一些文件吗?
答案 0 :(得分:0)
您已将膨胀的popupView布局的根设置为null,这意味着它可能没有正确的布局框架,这可能会影响触摸交互。
尝试重新排列以便执行此操作:
ViewGroup rootLayout = (ViewGroup) findViewById(android.R.id.content);
View popupView = layoutInflater.inflate(R.layout.pointzipreviewtoolbar, rootLayout, false);
这样popupView将从rootLayout继承layoutparams,但仍然不会附加到该视图,因为最终参数(attachToRoot)为false。看看onClickListener之后是否响应。
您还没有在onCreate中使用setContentView(View view)
,但是当您从ReactActivity继承时,这可能是正常的,不确定。
答案 1 :(得分:0)
我设法通过将pointzipreviewtoolbar布局元素设置为onClick来解决此问题。在我的情况下,在pointzipreviewtoolbar内部有一个名为preViewCapture的ImageButton。然后我将它设置为OnClickListner并触发它。
public class MainActivity extends ReactActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LayoutInflater layoutInflater =
(LayoutInflater)getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.pointzipreviewtoolbar,null);
PopupWindow popupWindow = new PopupWindow(
popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
ViewGroup rootLayout = (ViewGroup) findViewById(android.R.id.content);
ImageButton image = (ImageButton) popupView.findViewById(R.id.preViewCapture);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("Popup was Clicked", "I clicked here");
}
});
}
}