내가 탐색 서랍
이이 View.findViewsWithText
을 활용하는 것입니다 달성하기 정말 간단한 방법을 여는 동안 천천히 눈에 보이지 않는해야합니다. 여기에 간단한 예는 다음과 같습니다
public class YourActivity extends Activity {
/** Contains our {@linkplain MenuItem menu items} */
private final ArrayList<View> mMenuItems = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
// Initialize the drawer
final DrawerLayout drawer = ...;
drawer.setDrawerListener(new DrawerLayout.SimpleDrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
animateMenuItems(slideOffset);
}
});
}
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
// Add some dummy items
menu.add("queue")
.setIcon(R.drawable.ic_menu_queue)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add("search")
.setIcon(R.drawable.ic_menu_search)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
// Collect the menu items
final ViewGroup decor = (ViewGroup) getWindow().getDecorView();
decor.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// Remove any installed layout listeners
decor.getViewTreeObserver().removeOnGlobalLayoutListener(this);
// Find each MenuItem
findMenuItems(decor, menu);
}
});
return true;
}
/** Used to traverse the decor hierarchy to locate all the menu items */
private void findMenuItems(ViewGroup decor, Menu menu) {
final int size = menu.size();
for (int i = 0; i < size; i++) {
final CharSequence title = menu.getItem(i).getTitle();
if (!TextUtils.isEmpty(title)) {
decor.findViewsWithText(mMenuItems, title, View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION);
}
}
}
/** Used to animate each {@link MenuItem} based on the offset */
private void animateMenuItems(float slideOffset) {
for (final View view : mMenuItems) {
if (view != null) {
view.setAlpha(1f - slideOffset);
}
}
}
}
는 작업 표시 줄을 숨길 경우 표시됩니다 무엇을 당신의 질문에 대해,
http://www.gfycat.com/BriskLiquidGaur
안녕 마안 결과. –
리플렉션을 사용하거나 메뉴 항목에 대한 사용자 정의보기를 사용하여 메뉴 항목보기를 가져 오는 두 가지 방법이 있습니다. –
이 링크를 확인하십시오. http://stackoverflow.com/questions/8614293/android-get-view-reference-to-a-menu-item –