그래서 DrawerLayout을 열어서 아이템이 메뉴에 추가 된 다음 닫힙니다.DrawerLayout을 열고 액션을 수행 한 다음 닫으십시오.
많은 것을 시도했지만 문제는 "열기"및 "닫기"명령 (또는 적어도 눈에 띄지 않는 명령) 사이에 지연이 없으므로 애니메이션이 트리거되지 않는다는 것입니다.
나는 더러워 보이기 때문에 '지연된 게시물'을 임의의 길이로 사용하고 싶지 않습니다. 수동으로 리스너에서 "onDrawerOpened()"를 무시하려고 시도했습니다. 작동하지만, 그 자체에서 닫을 수 없기 때문에 작업을 수행 한 후에 닫을 수 없습니다 ('closeDrawer 레이아웃) '메서드가 리스너 자체의 모든 하위 스레드에서 호출되면 런타임 오류가 발생합니다.
그래서 내가 무엇을 가지고 :
_drawerToggle = new ActionBarDrawerToggle(MainActivity.this, _drawerLayout, R.drawable.ic_drawer, R.string.drawerOpen, R.string.drawerClose)
{
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
getActionBar().setTitle(_title);
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
myAction(); //My action
//If I try to invoke 'drawerClose()' here or in my action, a runtime error occurs
}
};
_drawerLayout.setDrawerListener(_drawerToggle);
_drawerLayout.openDrawer(_mainFrame);
//If I invoke 'drawerClose()' the entire thing is just too fast and the animations don't trigger
나는 심지어 DrawerLayout에 '() getAnimation'을 시도했지만 그래서 난 지연 조치를 게시하는 데 사용할 수 없습니다 null를 돌려줍니다.
누구나 접근 방법을 알고 있습니까? 난 그냥 임의의 지연을 사용해야하고 모든 장치에서 똑같이 보일까? 청취자 내에서 서랍을 닫을 수있는 방법이 있습니까? 미리 감사드립니다.
비슷한 해결책을 선택했습니다. 나는 이것을 성취하는 더 우아한 방법이 없다고 믿을 수는 없지만, 효과가있는 것은 작동합니다. 감사! –
@EladAvron getContentView()에서 빌드를 사용하는 것보다 훨씬 더 우아합니다. postDelayed (Runnable, int) 활동에 있다면? (실제로 모든 뷰에서 postDelayed를 사용할 수 있습니다) – Redwarp