android.view.ViewRootImpl cannot be cast to android.view.View

Multi tool use
up vote
0
down vote
favorite
enter code here
I'm trying close popup when touch outside popup.My vode working API level 23+ .but not working API level 17.
Thank You in advance.enter image description here
LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(dosy.app.yds.R.layout.toast_popup, null);
final PopupWindow popupWindow = new PopupWindow(popupView,
ActionBar.LayoutParams.MATCH_PARENT,
ActionBar.LayoutParams.WRAP_CONTENT);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
txtToast=(TextView)popupView.findViewById(dosy.app.yds.R.id.textViewToast);
txtToast.setText(mWord);
popupWindow.showAsDropDown(widget);
final View parent = (View) popupWindow.getContentView().getParent();
//dim the window in the background
final WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
final WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams();
p.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
p.dimAmount = 0.2f;
wm.updateViewLayout(parent, p);
popupWindow.setTouchInterceptor(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_OUTSIDE){
p.dimAmount = 0.0f;
wm.updateViewLayout(parent, p);
return true;
}
return false;
}
});

add a comment |
up vote
0
down vote
favorite
enter code here
I'm trying close popup when touch outside popup.My vode working API level 23+ .but not working API level 17.
Thank You in advance.enter image description here
LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(dosy.app.yds.R.layout.toast_popup, null);
final PopupWindow popupWindow = new PopupWindow(popupView,
ActionBar.LayoutParams.MATCH_PARENT,
ActionBar.LayoutParams.WRAP_CONTENT);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
txtToast=(TextView)popupView.findViewById(dosy.app.yds.R.id.textViewToast);
txtToast.setText(mWord);
popupWindow.showAsDropDown(widget);
final View parent = (View) popupWindow.getContentView().getParent();
//dim the window in the background
final WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
final WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams();
p.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
p.dimAmount = 0.2f;
wm.updateViewLayout(parent, p);
popupWindow.setTouchInterceptor(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_OUTSIDE){
p.dimAmount = 0.0f;
wm.updateViewLayout(parent, p);
return true;
}
return false;
}
});

try to use 'popupWindow.getContentView()' in place of 'popupWindow.getContentView().getParent()'
– Rahul Sonpaliya
Nov 10 at 12:31
Hi Rahul, I'm try your advice. Now get "java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.view.WindowManager$LayoutParams" exception, line: WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams(); in API 23+ . So I cant touchoutside in API 17
– sinan yılmaz
Nov 10 at 13:59
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
enter code here
I'm trying close popup when touch outside popup.My vode working API level 23+ .but not working API level 17.
Thank You in advance.enter image description here
LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(dosy.app.yds.R.layout.toast_popup, null);
final PopupWindow popupWindow = new PopupWindow(popupView,
ActionBar.LayoutParams.MATCH_PARENT,
ActionBar.LayoutParams.WRAP_CONTENT);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
txtToast=(TextView)popupView.findViewById(dosy.app.yds.R.id.textViewToast);
txtToast.setText(mWord);
popupWindow.showAsDropDown(widget);
final View parent = (View) popupWindow.getContentView().getParent();
//dim the window in the background
final WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
final WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams();
p.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
p.dimAmount = 0.2f;
wm.updateViewLayout(parent, p);
popupWindow.setTouchInterceptor(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_OUTSIDE){
p.dimAmount = 0.0f;
wm.updateViewLayout(parent, p);
return true;
}
return false;
}
});

enter code here
I'm trying close popup when touch outside popup.My vode working API level 23+ .but not working API level 17.
Thank You in advance.enter image description here
LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(dosy.app.yds.R.layout.toast_popup, null);
final PopupWindow popupWindow = new PopupWindow(popupView,
ActionBar.LayoutParams.MATCH_PARENT,
ActionBar.LayoutParams.WRAP_CONTENT);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
txtToast=(TextView)popupView.findViewById(dosy.app.yds.R.id.textViewToast);
txtToast.setText(mWord);
popupWindow.showAsDropDown(widget);
final View parent = (View) popupWindow.getContentView().getParent();
//dim the window in the background
final WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
final WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams();
p.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
p.dimAmount = 0.2f;
wm.updateViewLayout(parent, p);
popupWindow.setTouchInterceptor(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_OUTSIDE){
p.dimAmount = 0.0f;
wm.updateViewLayout(parent, p);
return true;
}
return false;
}
});


asked Nov 10 at 12:04


sinan yılmaz
83
83
try to use 'popupWindow.getContentView()' in place of 'popupWindow.getContentView().getParent()'
– Rahul Sonpaliya
Nov 10 at 12:31
Hi Rahul, I'm try your advice. Now get "java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.view.WindowManager$LayoutParams" exception, line: WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams(); in API 23+ . So I cant touchoutside in API 17
– sinan yılmaz
Nov 10 at 13:59
add a comment |
try to use 'popupWindow.getContentView()' in place of 'popupWindow.getContentView().getParent()'
– Rahul Sonpaliya
Nov 10 at 12:31
Hi Rahul, I'm try your advice. Now get "java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.view.WindowManager$LayoutParams" exception, line: WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams(); in API 23+ . So I cant touchoutside in API 17
– sinan yılmaz
Nov 10 at 13:59
try to use 'popupWindow.getContentView()' in place of 'popupWindow.getContentView().getParent()'
– Rahul Sonpaliya
Nov 10 at 12:31
try to use 'popupWindow.getContentView()' in place of 'popupWindow.getContentView().getParent()'
– Rahul Sonpaliya
Nov 10 at 12:31
Hi Rahul, I'm try your advice. Now get "java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.view.WindowManager$LayoutParams" exception, line: WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams(); in API 23+ . So I cant touchoutside in API 17
– sinan yılmaz
Nov 10 at 13:59
Hi Rahul, I'm try your advice. Now get "java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.view.WindowManager$LayoutParams" exception, line: WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams(); in API 23+ . So I cant touchoutside in API 17
– sinan yılmaz
Nov 10 at 13:59
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
draft saved
draft discarded
draft saved
draft discarded
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53238760%2fandroid-view-viewrootimpl-cannot-be-cast-to-android-view-view%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
w1hOB8ZEI,J,UzDxYBsR5 uNgASU aiR,gGVB
try to use 'popupWindow.getContentView()' in place of 'popupWindow.getContentView().getParent()'
– Rahul Sonpaliya
Nov 10 at 12:31
Hi Rahul, I'm try your advice. Now get "java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.view.WindowManager$LayoutParams" exception, line: WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams(); in API 23+ . So I cant touchoutside in API 17
– sinan yılmaz
Nov 10 at 13:59