本文整理汇总了Java中android.view.View.hasFocus方法的典型用法代码示例。如果您正苦于以下问题:Java View.hasFocus方法的具体用法?Java View.hasFocus怎么用?Java View.hasFocus使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.view.View
的用法示例。
在下文中一共展示了View.hasFocus方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: onTouch
import android.view.View; //导入方法依赖的package包/类
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View view, MotionEvent arg1) {
if (view != null && !view.hasFocus()) {
view.requestFocus();
}
mAction = arg1.getAction();
mY = arg1.getY();
if (mAction == MotionEvent.ACTION_DOWN) {
mLocation = mY;
} else if (mAction == MotionEvent.ACTION_UP) {
if ((mY - mLocation) > SCROLL_DOWN_THRESHOLD) {
if (mWebView.getScrollY() != 0) {
mBrowserController.showActionBar();
} else {
mBrowserController.toggleActionBar();
}
} else if ((mY - mLocation) < -SCROLL_UP_THRESHOLD) {
mBrowserController.hideActionBar();
}
mLocation = 0;
}
mGestureDetector.onTouchEvent(arg1);
return false;
}
示例2: tryPassFirstViewToPrevious
import android.view.View; //导入方法依赖的package包/类
private boolean tryPassFirstViewToPrevious(DocumentColumn current, DocumentColumn previous) {
final View view = current.getViewCount() == 0 ? null : current.getViewAt(0);
if (view != null && previous.canTake(view, view.getLayoutParams(), false)) {
mLog.i("tryPassFirstViewToPrevious:", "passing view", Utils.mark(view),
"from", current.getNumber(), "to", previous.getNumber());
boolean hasFocus = view.hasFocus();
current.release(view);
previous.take(view, view.getLayoutParams());
if (hasFocus) {
view.post(new Runnable() {
@Override
public void run() {
view.requestFocus();
Utils.showKeyboard(view);
}
});
}
return true;
}
return false;
}
示例3: tryPassFirstViewToPrevious
import android.view.View; //导入方法依赖的package包/类
private boolean tryPassFirstViewToPrevious(DocumentPage current, DocumentPage previous) {
final View view = current.getViewCount() == 0 ? null : current.getViewAt(0);
if (view != null && previous.canTake(view, view.getLayoutParams(), false)) {
LOG.i("tryPassFirstViewToPrevious:", "passing view", Utils.mark(view),
"from", current.getNumber(), "to", previous.getNumber());
boolean hasFocus = view.hasFocus();
current.release(view);
previous.take(view, view.getLayoutParams());
if (current.getViewCount() == 0) {
onEmpty(current);
}
if (hasFocus) {
view.post(new Runnable() {
@Override
public void run() {
view.requestFocus();
Utils.showKeyboard(view);
}
});
}
return true;
}
return false;
}
示例4: 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}");
}
示例5: onTouch
import android.view.View; //导入方法依赖的package包/类
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(@Nullable View view, @NonNull MotionEvent arg1) {
if (view == null)
return false;
if (!view.hasFocus()) {
view.requestFocus();
}
mAction = arg1.getAction();
mY = arg1.getY();
if (mAction == MotionEvent.ACTION_DOWN) {
mLocation = mY;
} else if (mAction == MotionEvent.ACTION_UP) {
final float distance = (mY - mLocation);
if (distance > SCROLL_UP_THRESHOLD && view.getScrollY() < SCROLL_UP_THRESHOLD) {
mUIController.showActionBar();
} else if (distance < -SCROLL_UP_THRESHOLD) {
mUIController.hideActionBar();
}
mLocation = 0;
}
mGestureDetector.onTouchEvent(arg1);
return false;
}
示例6: showKeyboard
import android.view.View; //导入方法依赖的package包/类
public void showKeyboard(View view) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1 && view.hasFocus()) {
view.clearFocus();
}
view.requestFocus();
InputMethodManager imm = (InputMethodManager) view.getContext()
.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.showSoftInput(view, 0);
}
}
示例7: 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;
}
示例8: saveFocus
import android.view.View; //导入方法依赖的package包/类
@Override
public boolean saveFocus(final View sv) {
int i = 0;
lastScroll=0;
for(View t : ti ) {
if (t.hasFocus()) {
current = i;
if(sv!=null)
lastScroll = sv.getScrollY();
return true;
}
i++;
}
return false;
}
示例9: showKeyboard
import android.view.View; //导入方法依赖的package包/类
public void showKeyboard(View view) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1 && view.hasFocus()) {
view.clearFocus();
}
view.requestFocus();
InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, 0);
}
示例10: changeHasFocusViewBackgroundColor
import android.view.View; //导入方法依赖的package包/类
public void changeHasFocusViewBackgroundColor(View view) {
if (view.hasFocus()) {
view.setBackgroundColor(UIUtils.getColor(R.color.green0));
} else {
view.setBackgroundColor(UIUtils.getColor(R.color.line));
}
}
示例11: onSpaceOver
import android.view.View; //导入方法依赖的package包/类
@Override
public void onSpaceOver(DocumentColumn column) {
// This child was not OK in the column it came from.
// If this is called, we are probably wrap content.
if (column.getViewCount() == 0) return; // <- happens during collects..
mLog.i("onSpaceOver:", "triggered by column", column.getNumber());
int which = mColumns.indexOf(column);
boolean last = which == mColumnCount - 1;
if (last) {
// This is not our business.
mLog.i("onSpaceOver:", "last column, passing up to pager.");
getRoot().onSpaceOver(this);
} else {
final View lastView = column.getViewAt(column.getViewCount() - 1);
// If it is marked as untakable, there is nothing we can do.
// But it could be a view that just grew to be untakable, so we check if the column
// could take it if it were empty.
if (Utils.isUntakable(lastView)) return;
if (!column.canTake(lastView, lastView.getLayoutParams(), true)) {
Utils.setUntakable(lastView, true);
return;
}
DocumentColumn next = mColumns.get(which + 1);
mLog.i("onSpaceOver:", "passing view", Utils.mark(lastView), "to column", next.getNumber());
boolean hasFocus = lastView.hasFocus();
column.release(lastView);
next.takeFirst(lastView, lastView.getLayoutParams());
if (hasFocus) {
lastView.post(new Runnable() {
@Override
public void run() {
lastView.requestFocus();
Utils.showKeyboard(lastView);
}
});
}
}
}
示例12: onSpaceOver
import android.view.View; //导入方法依赖的package包/类
@Override
public void onSpaceOver(DocumentPage page) {
// This child was not OK in the page it came from. Can we open a new one?
// If this is called, we are NOT wrap content.
if (!mEnabled) return;
LOG.i("onSpaceOver:", "triggered by page", page.getNumber());
final View last = page.getViewAt(page.getViewCount() - 1);
// If it is marked as untakable, there is nothing we can do.
// But it could be a view that just grew to be untakable, so we check if the page
// could take it if it were empty.
if (Utils.isUntakable(last)) return;
if (!page.canTake(last, last.getLayoutParams(), true)) {
Utils.setUntakable(last, true);
return;
}
// Pass to a new page.
LOG.i("onSpaceOver:", "passing view", Utils.mark(last),
"to page", page.getNumber() + 1);
synchronized (mLock) {
DocumentPage next;
int which = mPages.indexOf(page);
int other = which + 1;
if (other <= getPageCount() - 1) {
next = mPages.get(which + 1);
} else {
openPage();
next = getLastPage();
}
boolean hasFocus = last.hasFocus();
page.release(last);
next.takeFirst(last, last.getLayoutParams());
if (hasFocus) {
last.post(new Runnable() {
@Override
public void run() {
last.requestFocus();
Utils.showKeyboard(last);
}
});
}
}
}
示例13: 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;
}
示例14: arrowScrollFocused
import android.view.View; //导入方法依赖的package包/类
private ArrowScrollFocusResult arrowScrollFocused(int direction) {
View newFocus;
View selectedView = getSelectedView();
if (selectedView == null || !selectedView.hasFocus()) {
int xSearchPoint;
if (direction == 130) {
int listLeft = this.mListPadding.left + (this.mFirstPosition > 0 ? getArrowScrollPreviewLength() : 0);
if (selectedView == null || selectedView.getLeft() <= listLeft) {
xSearchPoint = listLeft;
} else {
xSearchPoint = selectedView.getLeft();
}
this.mTempRect.set(xSearchPoint, 0, xSearchPoint, 0);
} else {
int listRight = (getWidth() - this.mListPadding.right) - ((this.mFirstPosition + getChildCount()) + -1 < this.mItemCount ? getArrowScrollPreviewLength() : 0);
if (selectedView == null || selectedView.getRight() >= listRight) {
xSearchPoint = listRight;
} else {
xSearchPoint = selectedView.getRight();
}
this.mTempRect.set(xSearchPoint, 0, xSearchPoint, 0);
}
newFocus = FocusFinder.getInstance().findNextFocusFromRect(this, this.mTempRect, direction);
} else {
newFocus = FocusFinder.getInstance().findNextFocus(this, selectedView.findFocus(), direction);
}
if (newFocus != null) {
int positionOfNewFocus = positionOfNewFocus(newFocus);
if (!(this.mSelectedPosition == -1 || positionOfNewFocus == this.mSelectedPosition)) {
int selectablePosition = lookForSelectablePositionOnScreen(direction);
if (selectablePosition != -1 && ((direction == 130 && selectablePosition < positionOfNewFocus) || (direction == 33 && selectablePosition > positionOfNewFocus))) {
return null;
}
}
int focusScroll = amountToScrollToNewFocus(direction, newFocus, positionOfNewFocus);
int maxScrollAmount = getMaxScrollAmount();
if (focusScroll < maxScrollAmount) {
newFocus.requestFocus(direction);
this.mArrowScrollFocusResult.populate(positionOfNewFocus, focusScroll);
return this.mArrowScrollFocusResult;
} else if (distanceToView(newFocus) < maxScrollAmount) {
newFocus.requestFocus(direction);
this.mArrowScrollFocusResult.populate(positionOfNewFocus, maxScrollAmount);
return this.mArrowScrollFocusResult;
}
}
return null;
}
示例15: showSoftKeyboard
import android.view.View; //导入方法依赖的package包/类
/**
* Shows the soft keyboard on the current window for the given <var>view</var>.
*
* @param view The view for which to show keyboard. If the view does not have focus, it will be
* requested for it via {@link View#requestFocus()}.
* @return {@code True} if keyboard has been shown successfully, {@code false} if the view does
* not have focus and it did not took it when requested.
* @see InputMethodManager#showSoftInput(View, int)
* @see InputMethodManager#SHOW_FORCED
*/
public static boolean showSoftKeyboard(@NonNull View view) {
if (view.hasFocus() || view.requestFocus()) {
final InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
return imm != null && imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
}
return false;
}