Android 도면 구분선/분할선 배치?
레이아웃 가운데에 선을 그어서 TextView와 같은 다른 항목의 구분 기호로 사용하고 싶습니다.이것을 위한 좋은 위젯이 있습니까?이미지에 다른 구성 요소를 맞추기가 힘들기 때문에 이미지를 사용하고 싶지 않습니다.그리고 저는 그것이 상대적으로 위치하기를 원합니다.감사해요.
보통 이 코드를 사용하여 가로줄을 추가합니다.
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"/>
수직 구분 기호를 추가하려면 다음과 같이 전환합니다.layout_width
그리고.layout_height
가치
Alex Kucherenko와 Dan Dar3가 제공한 답변을 개선하기 위해
스타일에 추가했습니다.
<style name="Divider">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1dp</item>
<item name="android:background">?android:attr/listDivider</item>
</style>
그러면 제 레이아웃에는 코드가 적고 읽기가 더 간단합니다.
<View style="@style/Divider"/>
구분자를 사용할 레이아웃에 이 항목을 추가합니다(필요에 따라 속성을 수정).
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@android:drawable/divider_horizontal_dark"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingBottom="2dp"
android:paddingTop="2dp" />
에서 사용할 수 있습니다.LinearLayout
:
android:divider="?android:dividerHorizontal"
android:showDividers="middle"
예:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="?android:dividerHorizontal"
android:showDividers="middle"
android:orientation="vertical" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="abcd gttff hthjj ssrt guj"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="abcd"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="abcd gttff hthjj ssrt guj"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="abcd"/>
</LinearLayout>
가장 쉬운 방법:
수직 구분선:
<View style="@style/Divider.Vertical"/>
수평 분할기:
<View style="@style/Divider.Horizontal"/>
그게 다야!
이거 그냥 넣어주세요.res>values>styles.xml
<style name="Divider">
<item name="android:background">?android:attr/listDivider</item> //you can give your color here. that will change all divider color in your app.
</style>
<style name="Divider.Horizontal" parent="Divider">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1dp</item> // You can change thickness here.
</style>
<style name="Divider.Vertical" parent="Divider">
<item name="android:layout_width">1dp</item>
<item name="android:layout_height">match_parent</item>
</style>
<TextView
android:id="@+id/line"
style="?android:attr/listSeparatorTextViewStyle"
android:paddingTop="5dip"
android:gravity="center_horizontal"
android:layout_below="@+id/connect_help"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000" />
이 코드를 사용합니다.도움이 될 것입니다
<LinearLayout
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:divider="?android:dividerHorizontal"
android:gravity="center"
android:orientation="vertical"
android:showDividers="middle" >
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:layout_marginTop="4dp"
android:background="@android:color/darker_gray" />
두 레이아웃 사이 이 코드를 입력하여 구분선을 가져옵니다.
다음과 같이 적으십시오.
android:divider="?android:dividerHorizontal"
android:showDividers="middle"
전체 예:
<LinearLayout
android:id="@+id/llTipInformation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvServiceRating"
android:orientation="horizontal"
android:divider="?android:dividerHorizontal"
android:layout_marginTop="@dimen/activity_horizontal_margin"
android:showDividers="middle">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@string/main.msg.tippercent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/colorWhite"
android:layout_marginTop="@dimen/activity_vertical_margin"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@string/main.msg.tiptotal"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/colorWhite"
android:layout_marginTop="@dimen/activity_vertical_margin"/>
</LinearLayout>
actionBarSherlock을 사용하는 경우 com.actionbarsherlock.internal을 사용할 수 있습니다.위젯.Divider를 지원하고 뷰 사이에 표시하기 위한 IcsLinearLayout 클래스입니다.
사용 예:
<com.actionbarsherlock.internal.widget.IcsLinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:divider="@drawable/divider"
android:dividerPadding="10dp"
android:orientation="vertical"
android:showDividers="beginning|middle|end" >
... children...
res/drawable/drawable.xml :
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<size android:height="2dip" />
<solid android:color="#FFff0000" />
</shape>
어떤 이유에서인지 그래픽 디자이너의 미리보기에 "android.graphics.bitmap_delegate.nativeRecycle(I)Z"라고 표시되어 있습니다. 의미는 확실하지 않지만 새 버전의 안드로이드와 이전 버전(안드로이드 4.2 및 2.3에서 테스트됨) 모두에서 잘 작동하기 때문에 무시할 수 있습니다.
그래픽 디자이너에 API17을 사용할 때만 오류가 표시되는 것 같습니다.
아주 간단합니다.검은색 배경색으로 보기를 만들기만 하면 됩니다.
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000"/>
이렇게 하면 배경색이 있는 수평선이 만들어집니다.다른 보기와 마찬가지로 여백, 패딩 등의 다른 속성을 추가할 수도 있습니다.
이것을 사용할 수 있습니다.<View>
요소를 입력합니다.
<View
android:layout_marginTop="@dimen/d10dp"
android:id="@+id/view1"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#c0c0c0"/>
이 보기를 추가합니다. 이 보기는 사용자 사이에 구분자를 그립니다.textviews
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000000" />
여기 당신의 대답이 있습니다.다음은 컨트롤 간의 선을 긋는 예입니다...
<TextView
android:id="@+id/textView1"
style="@style/behindMenuItemLabel1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
android:text="FaceBook Feeds" />
<View
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="#d13033"/>
<ListView
android:id="@+id/list1"
android:layout_width="350dp"
android:layout_height="50dp" />
이 코드는 두 컨트롤 사이에 선을 그립니다.
레이아웃의 모든 위치에 수평 구분선을 추가합니다.
<TextView
style="?android:listSeparatorTextViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
런타임 버전:
View dividerView = new View(getContext());
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, UIUtils.dpToPix(getContext(), 1));
dividerView.setLayoutParams(lp);
TypedArray array = getContext().getTheme()
.obtainStyledAttributes(new int[] {android.R.attr.listDivider});
Drawable draw = array.getDrawable(0);
array.recycle();
dividerView.setBackgroundDrawable(draw);
mParentLayout.addView(dividerView);
이 xml 코드를 사용하여 수직선을 추가합니다.
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:background="#000000" />
이 xml 코드를 사용하여 가로줄을 추가합니다.
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000000" />
//for vertical line:
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:background="#00000000" />
//for horizontal line:
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#00000000" />
//it works like a charm
를 사용하는 android:layout_weight
요소에 입니다. 를 들어, (한:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:orientation="vertical">
...
...
</LinearLayout>
/* And we want to add a verical separator here */
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:orientation="vertical">
...
...
</LinearLayout>
</LinearLayout>
이미 전체 화면 공간을 차지한 기존 두 레이아웃 사이에 구분 기호를 추가하려면 다음을 사용하여 다른 선형 레이아웃을 추가할 수 없습니다.android:weight:"1"
왜냐하면 그것은 우리가 원하지 않는 세 개의 같은 너비의 열을 만들 것이기 때문입니다.대신 이 새 레이아웃에 제공할 공간을 줄일 것입니다.최종 코드는 다음과 같습니다.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:orientation="vertical">
...
...
</LinearLayout>
/* *************** ********************** */
/* Add another LinearLayout with android:layout_weight="0.01" and
android:background="#your_choice" */
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.01"
android:background="@android:color/darker_gray"
/>
/* Or View can be used */
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginTop="16dp"
android:background="@android:color/darker_gray"
/>
/* *************** ********************** */
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:orientation="vertical">
...
...
</LinearLayout>
</LinearLayout>
만약 당신이 그것을 많이 사용할 것이라면, 가장 좋은 방법은.
styles.xml:
<style name="Seperator">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1dp</item>
<item name="android:background">@color/light_color</item>
</style>
이제 레이아웃에 다음과 같이 추가합니다.
<View style="@style/Seperator" />
Camille Sevigny 답변을 완료하기 위해 선 색상을 사용자 정의하는 등 자신의 선 모양을 추가로 정의할 수 있습니다.
그리기 가능한 디렉토리에서 xml 모양을 정의합니다.line_interval.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" android:shape="line">
<stroke android:width="2dp" android:color="@android:color/holo_blue_dark" />
<size android:width="5dp" />
</shape>
원하는 특성과 함께 레이아웃에서 이 줄을 사용합니다.
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="2dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="2dp"
android:src="@drawable/line_horizontal" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="2dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="2dp"
android:scaleType="fitXY"
android:src="?android:attr/listDivider" />
다음을 사용하여 검은색 가로줄을 추가합니다.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000000"
android:layout_marginTop="10dp"/>
저는 주로 다음 코드를 사용합니다.
<ImageView
android:id="@+id/imageView2"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:background="#aa000000" />
레이아웃에 개체가 있고 아래에 줄을 설정하려면 ImageView에서 이 속성을 사용합니다.
android:layout_below="@+id/textBox1"
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<item
android:bottom="0dp"
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/divider" />
</shape>
</item>
이렇게 하면 이 문제를 해결하는 데 도움이 됩니다.여기서 작은 뷰가 작성되어 두 뷰 사이를 구분하여 검은색 선을 만듭니다.
<View
android:layout_width="3dp"
android:layout_height="wrap_content"
android:background="@android:color/black"
/>
다음은 "두 텍스트 보기 사이의 수평 구분선" 코드입니다.사용해 보세요.
<TextView
android:id="@id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="5dp"
android:inputType="textPersonName"
android:text:"address" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/black"/>
<TextView
android:id="@id/textView7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:text:"Upload File" />/>
공간을 두 개의 동일한 부분으로 나눕니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:divider="?android:dividerHorizontal"
android:showDividers="end"></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"></LinearLayout>
</LinearLayout>
한 부분에 끝 부분에 구분선이 있습니다.
간단한 해결책
just add this code in your layout and replace 'Id_of__view_present_above' to the id of the view, below which you need the divider.<TextView
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#c0c0c0"
android:id="@+id/your_id"
android:layout_marginTop="16dp"
android:layout_below="@+id/Id_of__view_present_above"
/>
예를 들어, 항목에 recyclerView를 사용한 경우:
build.gradle 쓰기:
dependencies {
compile 'com.yqritc:recyclerview-flexibledivider:1.4.0'
색상, 크기 및 여백 값을 설정하려면 다음과 같이 지정할 수 있습니다.
RecyclerView recyclerView = (RecyclerView)
findViewById(R.id.recyclerview);
recyclerView.addItemDecoration(
new HorizontalDividerItemDecoration.Builder(this)
.color(Color.RED)
.sizeResId(R.dimen.divider)
.marginResId(R.dimen.leftmargin, R.dimen.rightmargin)
.build());
언급URL : https://stackoverflow.com/questions/5049852/android-drawing-separator-divider-line-in-layout
'programing' 카테고리의 다른 글
루비에서 UTC 타임스탬프를 얻는 방법은 무엇입니까? (0) | 2023.06.03 |
---|---|
Flexbox 자녀를 부모 키의 100%로 만들려면 어떻게 해야 합니까? (0) | 2023.06.03 |
Xcode 명령줄 도구가 설치되어 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.06.03 |
Cordova: 특정 iOS 에뮬레이터 이미지 시작 (0) | 2023.06.03 |
pk 설치 시 INSTALL_FAILED_NO_MATCHING_ABIS (0) | 2023.06.03 |