Android 가상 버튼 이 동적 레이아웃 조정 에 적합 한 방법
첫 페이지 아래 부분 은 RecylerView 입 니 다.
첫 페이지 하단 부분 은 RecylerView 입 니 다.
가상 키 전환 감청
등록 시스템 방송
getContentResolver().registerContentObserver(Settings.System.getUriFor("navigationbar_is_min"), true, mNavigationStatusObserver);
private ContentObserver mNavigationStatusObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
int navigationBarIsMin = Settings.System.getInt(getContentResolver(),
"navigationbar_is_min", 0);
if (navigationBarIsMin == 1) {//
Log.e(" ", "-----");
gridView_Home.getViewTreeObserver().addOnGlobalLayoutListener(HomeActivity.this);
} else {//
Log.e(" ", "-----");
gridView_Home.getViewTreeObserver().addOnGlobalLayoutListener(HomeActivity.this);
}
}
};
View 에 전역 레이아웃 모니터 추가가상 버튼 이 전환 되 었 을 때 view 의 getView TreeObserver().addOnGlobalLayoutListener 를 호출 하여 view 에 전체 레이아웃 모니터 를 설정 하고 현재 view 가 표시 할 수 있 는 실제 높이 를 가 져 온 다음 높이 에 따라 하위 item 의 높이 를 동적 으로 설정 합 니 다.
레이아웃 모니터 의 리 셋
리 셋 에서 RecylerView 가 표시 할 수 있 는 실제 높이 를 측정 합 니 다.
@Override
public void onGlobalLayout() {
refreshGridViewHeight();
}
이 반전 은 여러 번 호출 될 수 있 습 니 다.높이 를 얻 은 후에 이 감청 을 제거 해 야 합 니 다.그렇지 않 으 면 인터페이스 가 끊 길 수 있 습 니 다.
private void refreshGridViewHeight() {
gridView_Home.post(new Runnable() {
@Override
public void run() {
// ,
int height = gridView_Home.getHeight();
// ,
final int itemHeight = height / 3 - 3;
runOnUiThread(new Runnable() {
@Override
public void run() {
homeMenuAdapter.setIemtHeight(itemHeight);
gridView_Home.setAdapter(homeMenuAdapter);
mPresenter.refushGridData();
if (Build.VERSION.SDK_INT < 16) {
gridView_Home.getViewTreeObserver().removeGlobalOnLayoutListener(HomeActivity.this);
} else {
gridView_Home.getViewTreeObserver().removeOnGlobalLayoutListener(HomeActivity.this);
}
}
});
}
});
이 레이아웃 감청 을 제거 하 는 방법 은 낮은 버 전 을 호 환 해 야 하기 때문에 상황 을 나 누 어 코드 를 구체 적 으로 봐 야 한다.마지막 으로 Activity 의 onDestroy 나 인터페이스 가 삭 제 된 곳 에서 방금 설 치 된 시스템 방송 수신 자 를 로그아웃 하 는 것 을 기억 하 세 요.
getContentResolver().unregisterContentObserver(mNavigationStatusObserver);
이상 의 안 드 로 이 드 가상 버튼 이 동적 으로 레이아웃 을 조정 하 는 방법 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.