本文整理汇总了Java中android.view.View.findFocus方法的典型用法代码示例。如果您正苦于以下问题:Java View.findFocus方法的具体用法?Java View.findFocus怎么用?Java View.findFocus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.view.View
的用法示例。
在下文中一共展示了View.findFocus方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: handleHorizontalFocusWithinListItem
import android.view.View; //导入方法依赖的package包/类
private boolean handleHorizontalFocusWithinListItem(int direction) {
if (direction == 33 || direction == 130) {
int numChildren = getChildCount();
if (this.mItemsCanFocus && numChildren > 0 && this.mSelectedPosition != -1) {
View selectedView = getSelectedView();
if (selectedView != null && selectedView.hasFocus() && (selectedView instanceof ViewGroup)) {
View currentFocus = selectedView.findFocus();
View nextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) selectedView, currentFocus, direction);
if (nextFocus != null) {
currentFocus.getFocusedRect(this.mTempRect);
offsetDescendantRectToMyCoords(currentFocus, this.mTempRect);
offsetRectIntoDescendantCoords(nextFocus, this.mTempRect);
if (nextFocus.requestFocus(direction, this.mTempRect)) {
return true;
}
}
View globalNextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) getRootView(), currentFocus, direction);
if (globalNextFocus != null) {
return isViewAncestorOf(globalNextFocus, this);
}
}
}
return false;
}
throw new IllegalArgumentException("direction must be one of {View.FOCUS_UP, View.FOCUS_DOWN}");
}
示例2: hideKeyboard
import android.view.View; //导入方法依赖的package包/类
public static void hideKeyboard(View v) {
if (v == null) {
return;
}
View focus = v.findFocus();
if (focus != null) {
Context c = v.getContext();
InputMethodManager imm =
(InputMethodManager) c.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(focus.getWindowToken(), 0);
}
}
示例3: handleHorizontalFocusWithinListItem
import android.view.View; //导入方法依赖的package包/类
/**
* To avoid horizontal focus searches changing the selected item, we
* manually focus search within the selected item (as applicable), and
* prevent focus from jumping to something within another item.
*
* @param direction
* one of {View.FOCUS_LEFT, View.FOCUS_RIGHT}
* @return Whether this consumes the key event.
*/
private boolean handleHorizontalFocusWithinListItem(int direction) {
// TODO: implement this
if (direction != View.FOCUS_UP && direction != View.FOCUS_DOWN) {
throw new IllegalArgumentException("direction must be one of" + " {View.FOCUS_UP, View.FOCUS_DOWN}");
}
final int numChildren = getChildCount();
if (mItemsCanFocus && numChildren > 0 && mSelectedPosition != INVALID_POSITION) {
final View selectedView = getSelectedView();
if (selectedView != null && selectedView.hasFocus() && selectedView instanceof ViewGroup) {
final View currentFocus = selectedView.findFocus();
final View nextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) selectedView, currentFocus,
direction);
if (nextFocus != null) {
// do the math to get interesting rect in next focus'
// coordinates
currentFocus.getFocusedRect(mTempRect);
offsetDescendantRectToMyCoords(currentFocus, mTempRect);
offsetRectIntoDescendantCoords(nextFocus, mTempRect);
if (nextFocus.requestFocus(direction, mTempRect)) {
return true;
}
}
// we are blocking the key from being handled (by returning
// true)
// if the global result is going to be some other view within
// this
// list. this is to acheive the overall goal of having
// horizontal d-pad navigation remain in the current item.
final View globalNextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) getRootView(),
currentFocus, direction);
if (globalNextFocus != null) {
return isViewAncestorOf(globalNextFocus, this);
}
}
}
return false;
}
示例4: deleteCurveDefView
import android.view.View; //导入方法依赖的package包/类
public boolean deleteCurveDefView(int nPosition) {
if (nPosition >= mlistCurveSettings.length || nPosition < 0) {
return false; // do not exist.
}
CurveSettings[] listCurveSettings
= new CurveSettings[mlistCurveSettings.length - 1];
for (int i = 0; i < mlistCurveSettings.length; i++) {
if (i < nPosition) {
listCurveSettings[i] = mlistCurveSettings[i];
} else if (i > nPosition) {
listCurveSettings[i - 1] = mlistCurveSettings[i];
}
}
mlistCurveSettings = listCurveSettings;
int nIdxToBeDeleted = -1;
for (int i = 0; i < mlayoutCurveListViewHolder.getChildCount(); i++) {
View vChild = mlayoutCurveListViewHolder.getChildAt(i);
if (vChild.getTag() != null && vChild.getTag() instanceof CurveDefViewHolder) {
if (((CurveDefViewHolder)(vChild.getTag())).mnPosition == nPosition) {
nIdxToBeDeleted = i;
View vFocusOnToBeDeleted = vChild.findFocus();
if (vFocusOnToBeDeleted != null && vFocusOnToBeDeleted == minputMethod.medtInput) {
// ok, we have to change focus, otherwise input may crash
EditText edtGraphName = (EditText)findViewById(R.id.graph_name_edit);
edtGraphName.requestFocus(); // if not set new focus, the input from ime may crash.
}
} else if (((CurveDefViewHolder)(vChild.getTag())).mnPosition > nPosition) {
((CurveDefViewHolder)(vChild.getTag())).mnPosition --;
}
}
}
if (nIdxToBeDeleted >= 0) {
mlayoutCurveListViewHolder.removeViewAt(nIdxToBeDeleted);
}
return true;
}
示例5: deleteSurfaceDefView
import android.view.View; //导入方法依赖的package包/类
public boolean deleteSurfaceDefView(int nPosition) {
if (nPosition >= mlistSurfaceSettings.length || nPosition < 0) {
return false; // do not exist.
}
SurfaceSettings[] listSurfaceSettings
= new SurfaceSettings[mlistSurfaceSettings.length - 1];
for (int i = 0; i < mlistSurfaceSettings.length; i++) {
if (i < nPosition) {
listSurfaceSettings[i] = mlistSurfaceSettings[i];
} else if (i > nPosition) {
listSurfaceSettings[i - 1] = mlistSurfaceSettings[i];
}
}
mlistSurfaceSettings = listSurfaceSettings;
int nIdxToBeDeleted = -1;
for (int i = 0; i < mlayoutSurfaceListViewHolder.getChildCount(); i++) {
View vChild = mlayoutSurfaceListViewHolder.getChildAt(i);
if (vChild.getTag() != null && vChild.getTag() instanceof SurfaceDefViewHolder) {
if (((SurfaceDefViewHolder)(vChild.getTag())).mnPosition == nPosition) {
nIdxToBeDeleted = i;
View vFocusOnToBeDeleted = vChild.findFocus();
if (vFocusOnToBeDeleted != null && vFocusOnToBeDeleted == minputMethod.medtInput) {
// ok, we have to change focus, otherwise input may crash
EditText edtGraphName = (EditText)findViewById(R.id.graph_name_edit);
edtGraphName.requestFocus(); // if not set new focus, the input from ime may crash.
}
} else if (((SurfaceDefViewHolder)(vChild.getTag())).mnPosition > nPosition) {
((SurfaceDefViewHolder)(vChild.getTag())).mnPosition --;
}
}
}
if (nIdxToBeDeleted >= 0) {
mlayoutSurfaceListViewHolder.removeViewAt(nIdxToBeDeleted);
}
return true;
}
示例6: arrowScrollImpl
import android.view.View; //导入方法依赖的package包/类
private boolean arrowScrollImpl(int direction) {
if (getChildCount() <= 0) {
return false;
}
boolean needToRedraw;
View focused;
View selectedView = getSelectedView();
int selectedPos = this.mSelectedPosition;
int nextSelectedPosition = lookForSelectablePositionOnScreen(direction);
int amountToScroll = amountToScroll(direction, nextSelectedPosition);
ArrowScrollFocusResult focusResult = this.mItemsCanFocus ? arrowScrollFocused(direction) : null;
if (focusResult != null) {
nextSelectedPosition = focusResult.getSelectedPosition();
amountToScroll = focusResult.getAmountToScroll();
}
if (focusResult != null) {
needToRedraw = true;
} else {
needToRedraw = false;
}
if (nextSelectedPosition != -1) {
boolean z;
if (focusResult != null) {
z = true;
} else {
z = false;
}
handleNewSelectionChange(selectedView, direction, nextSelectedPosition, z);
setSelectedPositionInt(nextSelectedPosition);
setNextSelectedPositionInt(nextSelectedPosition);
selectedView = getSelectedView();
selectedPos = nextSelectedPosition;
if (this.mItemsCanFocus && focusResult == null) {
focused = getFocusedChild();
if (focused != null) {
focused.clearFocus();
}
}
needToRedraw = true;
checkSelectionChanged();
}
if (amountToScroll > 0) {
if (direction != 33) {
amountToScroll = -amountToScroll;
}
scrollListItemsBy(amountToScroll);
needToRedraw = true;
}
if (this.mItemsCanFocus && focusResult == null && selectedView != null && selectedView.hasFocus()) {
focused = selectedView.findFocus();
if (!isViewAncestorOf(focused, this) || distanceToView(focused) > 0) {
focused.clearFocus();
}
}
if (!(nextSelectedPosition != -1 || selectedView == null || isViewAncestorOf(selectedView, this))) {
selectedView = null;
hideSelector();
this.mResurrectToPosition = -1;
}
if (!needToRedraw) {
return false;
}
if (selectedView != null) {
positionSelector(selectedPos, selectedView);
this.mSelectedLeft = selectedView.getLeft();
}
if (!awakenScrollBars()) {
invalidate();
}
invokeOnItemScrollListener();
return true;
}