4 개의 버튼을 같은 폭으로 연속으로 만들어야합니다. 선형 레이아웃과 가중치를 사용하여이를 수행하는 방법을 알고 있습니다. 그러나 그것은 저에게는 용인할만한 것이 아닙니다. 내 4 개의 버튼과 관련된 다른보기가 있으므로 상대 레이아웃 내부의 모든 작업을 수행하고 싶습니다. 가능한가?Android : 행에 동일한 너비의 버튼 4 개 생성 (상대 레이아웃)
답변
버튼의 너비를 표준 크기로 설정하는 방법은 어떻습니까?
<Button
android:width="75dp"
... />
추가 런타임에 디스플레이의 폭을 확인하는 방법은 다음과 같습니다
int width = getWindowManager().getDefaultDisplay().getWidth()/4;
// Set this width to your buttons
문제는 전체 화면 너비가 각 안드로이드 장치에 따라 다르다는 것입니다. –
는 동일한 폭과 높이를 가지고 다른 사람을 말할 것이다보기 중 하나를 선택합니다. 뷰의 크기를 가져 오기 위해이 같은 것을 사용
private static void runJustBeforeBeingDrawn(final View view, final Runnable runnable)
{
final ViewTreeObserver vto = view.getViewTreeObserver();
final OnPreDrawListener preDrawListener = new OnPreDrawListener()
{
@Override
public boolean onPreDraw()
{
Log.d(App.APPLICATION_TAG, CLASS_TAG + "onpredraw");
runnable.run();
final ViewTreeObserver vto = view.getViewTreeObserver();
vto.removeOnPreDrawListener(this);
return true;
}
};
vto.addOnPreDrawListener(preDrawListener);
}
나는 확실히 모르겠어요,하지만 난 유일한 방법은 당신이 무게 태그없이,이 작업을 수행 할 수 있다고 생각하는 것입니다 런타임/프로그래밍 방식으로 설정하십시오.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="numberOfButtons">4</integer>
</resources>
를 그리고, 당신의 어댑터/액티비티 클래스에서 다음과 같은 : 나는 다음처럼 integer.xml에 상수를 설정하여 이런 짓을 한
DisplayMetrics dm = new DisplayMetrics();
// dm holds your structure of resolution
context.getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.getWidth();
btn1.setWidth(width/getInteger(R.integer.numberOfButtons));
btn2.seTwidth(width/getInteger(R.integer.numberOfButtons));
btn3.seTwidth(width/getInteger(R.integer.numberOfButtons));
btn4.seTwidth(width/getInteger(R.integer.numberOfButtons));
희망이 어떤 식 으로든 당신을 도울 수 있기를 바랍니다.
Yuriy에 의해 이전에 언급했듯이 각 안드로이드 장치는 자체 해상도/화면 크기를가집니다. 이 값은 "DisplayMetrics"클래스에서 얻을 수 있습니다. – mthama
- 1. 상대 레이아웃 Android
- 2. Android 상대 레이아웃 선택자
- 3. Android 위젯 상대 레이아웃
- 4. 상대 레이아웃 Android
- 5. Android 상대 레이아웃 문제
- 6. ListView를 사용하는 Android 상대 레이아웃
- 7. 동일한 행에 여러 개의 버튼/개체가 있습니다.
- 8. HTML : 동일한 너비의 이미지
- 9. 상대 레이아웃 문제
- 10. 레이아웃 Android webview 및 버튼
- 11. Android 센터 레이아웃 숨기기 버튼
- 12. 상대 레이아웃 프로그래밍
- 13. xml android application 스크롤 가능한 상대 레이아웃
- 14. Android 상대 레이아웃 조정 및 정렬
- 15. Android 상대 레이아웃 TextView 프로그래밍 방식으로 변경
- 16. 간단한 상대 레이아웃, 바로
- 17. 상대 레이아웃 위치 문제
- 18. 상대 레이아웃 문제
- 19. 안드로이드 : 상대 레이아웃 문제
- 20. 동적 상대 레이아웃 문제입니다.
- 21. 프로그래밍 방식으로 상대 레이아웃 만들기
- 22. 2 개 버튼
- 23. 상대 레이아웃 크기 조정?
- 24. 상대 레이아웃 위에 이미지 오버레이
- 25. 동일한 너비의 단추를 만드는 방법은 무엇입니까?
- 26. 상대 최대 너비의 예상되는 동작은 무엇입니까
- 27. 동일한 화면에서 3 개 이상의 버튼 프로그래밍하기
- 28. Android - 목록보기의 각 행에 버튼 추가
- 29. 레이아웃 도움말 - 상대 또는 선형
- 30. Android - 레이아웃 : 위치 지정 버튼 문제
버튼을'LinearLayout'에 넣고'RelativeLayout'에'LinearLayout'을 넣으십시오. 또는 특정 'Button'과 관련된 상대편보기가 있다는 것을 의미합니까? – Squonk
@MisterSquonk 예,보기는 특정 버튼을 기준으로합니다. 실제로, RelativeLayout 내부에 LinearLayout을 넣은 다음 각 Button을 자신의 RelativeLayout으로 랩핑 할 수 있습니다. 그러나 다소 이상한 솔루션이고 "layoutCeption"처럼 들릴 수도 있습니다. –
전체 레이아웃에 대한 세부 정보를 추가해야 할 수도 있습니다. 그런 다음 더 완전한 제안을 제공 할 수 있습니다. LinearLayout없이 버튼을 동일한 길이로 만들려고하면 문제가 생길 것입니다. – you786