마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

레이아웃 질문좀 드릴게요 ㅠ [closed]

0 추천
[닉네임][이미지][시간]

위와같은 뷰를 그리는데 해결이되지 않아 질문 남깁니다..

조건은 아래와같습니다.

1. 닉네임과 시간은 textview이며, 이미지는 이미지뷰입니다.

2. 이미지와 시간의 뷰는 닉네임 오른쪽에 항상 붙어야합니다.

3. 닉네임은 길이제한이 없으므로 가변적으로 늘어나야하며, 시간뷰가 끝에 닿았을때, 닉네임이 ellipsize되어야합니다.

 

예1) 닉네임이 짧을때

| 구시포 o 2020.09.22                                         |

 

예2) 닉네임이 길떄,

| 구시포입니다 안녕하십니까 해결이안... o 2020.09.22 |

 

이런식으로 되어야합니다. 도와주세요 ㅠ
질문을 종료한 이유: constraintLayout을 사용하여 구현완료했습니다. layout_constrainedWidth라는 속성이 있던데 저와같은 문제를 발견하시면 해당 속성을 이용해서 해결해보세요!
구시포 (2,750 포인트) 님이 2020년 9월 22일 질문
구시포님이 2020년 9월 22일 closed

1개의 답변

0 추천
 
채택된 답변

간단히 짜봤는데 원하시는게 맞는지 모르겠네요 ^-^ 도움이 되시길 바랍니다.

도움이 되셨다면 yes 주세요! ㅎㅎ

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="140dp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginEnd="100dp"
        android:ellipsize="end"
        android:maxLines="1"
        tools:text="Hello!" />

    <LinearLayout
        android:id="@+id/sub_layout"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginStart="-100dp"
        android:gravity="center_vertical"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:text="2020.09.22" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:background="@drawable/ic_launcher_background" />

    </LinearLayout>

</LinearLayout>
쭈쭈총각 (17,750 포인트) 님이 2020년 9월 22일 답변
구시포님이 2020년 9월 22일 채택됨
원하던건 아니였지만 시간내서 같이 봐주셔서 감사합니다 ㅎㅎ
원하시던 동작인줄 알았는데.... 어떤 점에서 원하던게 아니였을까요? ^.^
올려주신 상태로 테스트를 해보았는데 textview의 text길이가 매우 길어지게 되면 sublayout이 사라지게 되더라구요.
저는 모든 뷰가 horizontal인 상태로 배치가 되어있으며 날짜인뷰도 wrap으로 가변적으로 움직여야하는 상태였습니다.
<androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintTop_toBottomOf="@id/image">

            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:singleLine="true"
                android:text="dddddddds"
                app:layout_constrainedWidth="true"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toStartOf="@id/imageView"
                app:layout_constraintHorizontal_bias="0"
                app:layout_constraintHorizontal_chainStyle="packed"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toStartOf="@id/textView2"
                app:layout_constraintStart_toEndOf="@id/textView"
                app:layout_constraintTop_toTopOf="parent"
                app:srcCompat="@android:drawable/btn_star" />

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="방금전"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0"
                app:layout_constraintStart_toEndOf="@id/imageView"
                app:layout_constraintTop_toTopOf="parent" />
        </androidx.constraintlayout.widget.ConstraintLayout>
이 xml을 확인해보시면 제가 이야기하려고했던게 어떤거인지 확인되실거에요.
제가 질문올릴때, 설명이 좀 부족했던거같습니다 ^^;
...