TIL) 230327

Hanseul Lee·2023년 3월 27일
0

TIL

목록 보기
14/23

imageButton에서 백그라운드 컬러 없애기

<ImageButton
            android:id="@+id/main_input_msg_btn"
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:layout_alignParentEnd="true"
            android:layout_centerInParent="true"
            android:src="@drawable/baseline_send_24"
            android:background="?attr/selectableItemBackground"/>

android:background="?attr/selectableItemBackground"

자바 코드를 코틀린 코드로 바꾸기

public class Message {
    public static String SENT_BY_ME = "me";
    public static String SENT_BY_BOT="bot";

    String message;
    String sentBy;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getSentBy() {
        return sentBy;
    }

    public void setSentBy(String sentBy) {
        this.sentBy = sentBy;
    }

    public Message(String message, String sentBy) {
        this.message = message;
        this.sentBy = sentBy;
    }
}
class Message(private var message: String, private var sendBy: String) {

    companion object {
        const val SEND_BY_USER = "USER"
        const val SEND_BY_CHAT = "CHAT"
    }

    fun getMessage(): String {
        return message
    }

    fun setMessage(message: String) {
        this.message = message
    }

    fun getSendBy(): String {
        return sendBy
    }

    fun setSendBy(sendBy: String) {
        this.sendBy = sendBy
    }
}

코틀린은 자바와 다르게 생성자의 매개변수들을 클래스 내에서 멤버 변수로 자동으로 만들어 주지 않기 때문에, 클래스 정의 내에서 생성자 매개변수를 private var로 선언해야 한다. 또한 자바의 static 키워드는 코틀린에서 companion object 블록으로 대체된다.

recyclerView의 item를 채팅 화면처럼 가장 최근 것을 끝에서부터 출력하기

private fun setAdapter() {
        binding.mainChatRv.adapter = MessageAdapter(messageList)
        
        val layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
        layoutManager.stackFromEnd
        binding.mainChatRv.layoutManager = layoutManager
    }

layoutManager에 stackFromEnd 속성을 주면 recyclerView의 아이템을 채팅 화면처럼 출력이 가능하다. 가장 최근의 아이템이 맨 아래에 오게 된다.

0개의 댓글