티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
Add padding on view programmatically
프로그래밍 방식으로 뷰에 패딩 추가
문제 내용
I am developing Android v2.2 app.
저는 안드로이드 v2.2 앱을 개발하고 있습니다.
I have a Fragment
. In the onCreateView(...)
callback of my fragment class, I inflate an layout to the fragment like below:
Fragment가 있습니다. Fragment 클래스의 onCreateView(...) 콜백에서 다음과 같이 레이아웃을 인플레이트합니다.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.login, null);
return view;
}
The above inflated layout file is (login.xml):
위에 인플레이트된 레이아웃 파일은(login.xml) 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Username" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Username" />
</LinearLayout>
I would like to set a paddingTop
to the above <LinearLayout>
element , and I want to do it in the Java code instead of do it in xml.
위의 <LinearLayout> 요소에 paddingTop을 설정하려고합니다. 그리고 xml 대신 Java 코드에서 수행하려고합니다.
How to set paddingTop
to <LinearLayout>
in my fragment Java class code ??
Fragment Java 클래스 코드에서 <LinearLayout> 에 paddingTop을 설정하는 방법은 무엇인가요?
높은 점수를 받은 Solution
view.setPadding(0,padding,0,0);
This will set the top padding to padding
-pixels.
padding-pixels에 대한 상단 패딩을 설정합니다.
If you want to set it in dp
instead, you can do a conversion:
대신 dp로 설정하려면 변환을 수행 할 수 있습니다.
float scale = getResources().getDisplayMetrics().density;
int dpAsPixels = (int) (sizeInDp*scale + 0.5f);
가장 최근 달린 Solution
Step 1: First, take the padding value as an integer.
1 단계 : 먼저 패딩 값을 정수로 가져옵니다.
int padding = getResources().getDimensionPixelOffset(R.dimen.padding);
or int padding = 16;
[Use any method]
또는 int padding = 16; [임의의 방법 사용]
Step 2: Then assign the padding value to the layout.
2 단계 : 그런 다음 레이아웃에 패딩 값을 할당합니다.
layout.setPadding(padding, padding, padding, padding);
All side different padding can be assigned. layout.setPadding(16, 10, 8, 12);
모든 측면에 다른 패딩을 할당 할 수 있습니다. layout.setPadding(16, 10, 8, 12);
For removing padding (No Padding) set padding values as 0,
패딩을 제거하려면 (패딩 없음) 패딩 값을 0으로 설정합니다.
layout.setPadding(0, 0, 0, 0);
출처 : https://stackoverflow.com/questions/9685658/add-padding-on-view-programmatically
'개발 > 안드로이드' 카테고리의 다른 글
다른 앱과 콘텐츠를 공유하기 위해 지원되는 FileProvider 사용하기 (0) | 2023.03.02 |
---|---|
TextView의 텍스트 스타일을 프로그래밍 방식으로 설정하기 (0) | 2023.03.02 |
에뮬레이터 사용 중 "Failed to sync vcpu reg" 오류 수정하기 (0) | 2023.03.01 |
Kotlin 안드로이드에서 데이터 클래스의 빈 생성자(empty constructor) 만들기 (0) | 2023.02.28 |
'Missing styles. Is the correct theme chosen for this layout?' 오류 수정하기 (0) | 2023.02.28 |