Solved_قفل شدن UI برنامه در استفاده از SlidingMenu (دراندروید 5)
سلام دوستان
من کتابخانه هایی که استاد در اموزش 21 توضیح دادند رو استفاده کردم < Manu بخوبی Slide میشه <
اما بعد از پایان Slide شدن Menu (هم در باز شدن و هم در بسته شدن SlidingMenu) تمام کنترل های روی Main اصلی قفل میشه <
و جالبه که وقتی Menu رو Slide میکنم < باید دستم رو روی Menu نگه دارم تا کاملا Slide نشه ، حالا در این حین < همه چیز در UI اصلی بخوبی کار میکنه <
من از افکت های Animation SlideIn استفاده میکنم < که قفل میشه < Button ها و ScrollView ها هم قفل میشه < تبلیغات عدد هم قفل میشه < و فقط OptionsMenu کار میکنه <
روی امولاتور BlueStacks و همچنین Genymotion بخوبی کار میکنه <
اما روی گوشی با اندروید 5 قفل میشه
سلان دوستان < کسی میدونه
تا زمانی که روی Screen برنامه تاچ نشده باشه <Sliding Menu در چه حالی قرار داره ؟ یعنی کدوم یکی از متد های زیر هنوز اجرا نشدن ؟
SlidingMenu menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setBehindOffset(100);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setFadeDegree(0.35f);
menu.attachToActivity(ActivityStartUp.this, SlidingMenu.SLIDING_CONTENT);
View view = G.layoutInflater.inflate(R.layout.menu, null);
menu.setMenu(view);
بعد از اینکه Menu تا اخر Slide شد؟ SlidingMenu در چه وضعیتی قرار میگیره ؟ کدوم متد های بالا اجرا می شوند ؟
زمانی که دست ما هنوز روی Screen هست < و کاملا Slide نشده SlidingMenu در چه وضعیتی قرار داره ؟ و کدوم متد ها اجر میشوند ؟
چرا SlidingMenu روی اندرودید 5 مشکل داره ؟
برای حل این مشکل : در AndroidManifest در قسمت Application این رو اضاف کنید <
android:hardwareAccelerated="true"
من از این library تو برنامم استفاده کردم و کمی با کد ور رفتم تا 70% از عرض اکتیویتی باز میشه که دست خودتونه میتوند تغییرش بدید این هم کدم
menu = new SlidingMenu( this );
menu.setMode( SlidingMenu.RIGHT_OF );
menu.setTouchModeAbove( SlidingMenu.TOUCHMODE_MARGIN );
menu.setBehindOffset( getPixelWidth() );
menu.setFadeDegree( 0.70f );
menu.attachToActivity( this , SlidingMenu.SLIDING_CONTENT );
View view = G.inflater.inflate( R.layout.menu , null );
menu.setMenu( view );
شما میتونید مقدار باز شدن slide رو در اینجا عوض کنید، میتونید عدد 30 رو تغییر بدید مثلا برای 60% صفحه عدد 40 رو بنویسید
private Integer getPixelWidth() {
DisplayMetrics displayMetrics = G.context.getResources().getDisplayMetrics();
int dpWidth = displayMetrics.widthPixels;
dpWidth = ( dpWidth * 30 ) / 100;
Log.i( G.LOG_TAG , "Pixel Width: " + dpWidth );
return (int) dpWidth;
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .