Rather than requiring a custom Layout type, a much simpler solution is to give your activity's root view a known ID, say@+id/activityRoot, hook a GlobalLayoutListener into the ViewTreeObserver, and from there calculate the size diff between your activity's view root and the window size:
finalView activityRootView = findViewById(R.id.activityRoot);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(newOnGlobalLayoutListener(){@Overridepublicvoid onGlobalLayout(){int heightDiff = activityRootView.getRootView().getHeight()- activityRootView.getHeight();if(heightDiff > dpToPx(this,200)){// if more than 200 dp, it's probably a keyboard...// ... do something here}}});
سوال
mr.ehsan8001 57
سلام من شدیدا نیاز دارم برای برنامم که کاربر در حال استفاده از کیبورد هست یا خیر.
این کد رو پیدا کردم که درست نفهمیدم دو خط اول یعنی قسمت activity root چیه
-------------------------------------------------------------------------------
Rather than requiring a custom Layout type, a much simpler solution is to give your activity's root view a known ID, say
@+id/activityRoot
, hook a GlobalLayoutListener into the ViewTreeObserver, and from there calculate the size diff between your activity's view root and the window size:Using a utility such as:
Easy!
Note: Your application must set this flag in Android Manifest
android:windowSoftInputMode="adjustResize"
otherwise above solution will not work.-------------------------------------------------------------------------------------------
لینک ارسال
به اشتراک گذاری در سایت های دیگر
3 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.