rootView.setFocusable(true);
rootView.setFocusableInTouchMode(true);
rootView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
rootView.requestFocus();
rootView.setDescendantFocusability(focusability);
/**
* Container will get focus before any of its descendants.
public void interceptFocus() {
T host = getHostView();
if (host != null) {
host.setFocusable(true);
host.setFocusableInTouchMode(true);
host.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
host.requestFocus();
ViewGroup rootView = (ViewGroup) atxtTag.getRootView(); int dfValue = rootView.getDescendantFocusability(); rootView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); atxtTag.clearFocus(); rootView.setDescendantFocusability(dfValue);
public void run(RapidParserObject object, Object view, Var value) { if( value.getString().compareToIgnoreCase("beforedescendants") == 0 ){ ((ViewGroup)view).setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS); if( value.getString().compareToIgnoreCase("afterdescendants") == 0 ){ ((ViewGroup)view).setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); if( value.getString().compareToIgnoreCase("blocksdescendants") == 0 ){ ((ViewGroup)view).setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
View convertView, ViewGroup parent)
parent.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
View childView = getMyView();
/** * set focus to top level window * disposes descendant focus * disposes softInput public static void topLevelFocus(Context context){ if(Activity.class.isAssignableFrom(context.getClass())){ ViewGroup tlView = (ViewGroup) ((Activity) context).getWindow().getDecorView(); if(tlView!=null){ tlView.setFocusable(true); tlView.setFocusableInTouchMode(true); tlView.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
@Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { if (position == 0) { convertView = View.inflate(mContext, R.layout.item_header, null); } else { convertView = View.inflate(mContext, R.layout.item_moment, null); ViewHolder holder = new ViewHolder(); holder.mCommentList = (LinearLayout) convertView.findViewById(R.id.comment_list); holder.mBtnInput = convertView.findViewById(R.id.btn_input_comment); // holder.mContent = (TextView) convertView.findViewById(R.id.content); convertView.setTag(holder); //防止ListView的OnItemClick与item里面子view的点击发生冲突 ((ViewGroup) convertView).setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); if (position == 0) { } else { int index = position - 1; ViewHolder holder = (ViewHolder) convertView.getTag(); // holder.mContent.setText(mList.get(index).mContent); CommentFun.parseCommentList(mContext, mList.get(index).mComment, holder.mCommentList, holder.mBtnInput, mTagHandler); return convertView;
/**
* Updates the verification overlay and main contents such that the overlay has |visibility|.
* @param visibility A View visibility enumeration value.
private void setOverlayVisibility(int visibility) {
mVerificationOverlay.setVisibility(visibility);
mControlsContainer.setAlpha(1f);
boolean contentsShowing = visibility == View.GONE;
if (!contentsShowing) {
int durationMs = 250;
mVerificationOverlay.setAlpha(0f);
mVerificationOverlay.animate().alpha(1f).setDuration(durationMs);
mControlsContainer.animate().alpha(0f).setDuration(durationMs);
ViewCompat.setImportantForAccessibility(mControlsContainer,
contentsShowing ? View.IMPORTANT_FOR_ACCESSIBILITY_AUTO
: View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
mControlsContainer.setDescendantFocusability(
contentsShowing ? ViewGroup.FOCUS_BEFORE_DESCENDANTS
: ViewGroup.FOCUS_BLOCK_DESCENDANTS);
protected void initPpWindow(){ contentView = findViewById(R.id.layoutContent); View popView = LayoutInflater.from(this).inflate(R.layout.layout_popupwindow ,null ,false); ppWindow = new PopupWindow(popView , ViewGroup.LayoutParams.MATCH_PARENT ,getWindowManager().getDefaultDisplay().getHeight()/5); ppWindow.setAnimationStyle(R.style.popwin_anim_style); ppWindow.setFocusable(true); ppWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.shape_popupwindow_bg)); // UIUtils.setPopupWindowTouchModal(ppWindow, false); ((ViewGroup)ppWindow.getContentView()).setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
/** * set focus to top level window * disposes descendant focus * disposes softInput * @param context - activity context * @param enable - state of focus public static void topLevelFocus(Context context, boolean enable){ if(Activity.class.isAssignableFrom(context.getClass())){ ViewGroup tlView = (ViewGroup) ((Activity) context).getWindow().getDecorView(); if(tlView!=null){ tlView.setFocusable(enable); tlView.setFocusableInTouchMode(enable); tlView.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS); tlView.requestFocus();
break;
((ViewGroup) convertView).setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
return convertView;
public void focus() {
setVisibility(VISIBLE);
RemoteInputHelper.setWindowManagerFocus(true);
mEditText.setInnerFocusable(true);
mEditText.mShowImeOnInputConnection = true;
mEditText.setSelection(mEditText.getText().length());
// Unblock focus
ViewParent ancestor = getParent();
while (ancestor instanceof ViewGroup) {
final ViewGroup vgAncestor = (ViewGroup) ancestor;
if (vgAncestor.getDescendantFocusability() == FOCUS_BLOCK_DESCENDANTS) {
vgAncestor.setDescendantFocusability(FOCUS_AFTER_DESCENDANTS);
break;
} else {
ancestor = vgAncestor.getParent();
mEditText.requestFocus();
updateSendButton();