TextView неожиданное заполнение - PullRequest
0 голосов
/ 10 июля 2019

RecyclerView показывает простые предметы. Каждый элемент имеет один TextView внутри FrameLayout. TextView не имеет никаких отступов, но в некоторых случаях они появляются неожиданно. На рисунке ниже видно, что заполнение появляется сразу после открытия клавиатуры. Заполнение появляется, только если текст содержит символы новой строки. Как это исправить?

enter image description here

MainActivity.kt

class MainActivity : AppCompatActivity() {
    lateinit var adapter : MyAdapter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val recyclerView : RecyclerView = findViewById(R.id.recyclerView)
        val button : Button = findViewById(R.id.button)

        adapter = MyAdapter();
        recyclerView.adapter = adapter;

        button.setOnClickListener {
            adapter.notifyDataSetChanged()
        }

    }
}

class MyViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
    val textView: TextView;

    init {
        textView = view.findViewById(R.id.txt)
    }
}

class MyAdapter : RecyclerView.Adapter<MyViewHolder>() {

    private val data = listOf("Text without \\n ", "multiline\ntext")

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
        MyViewHolder(LayoutInflater.from(parent.context)
            .inflate(R.layout.list_item, parent, false))

    override fun getItemCount() = data.size;

    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        holder.textView.text = data[position]
    }

}

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:orientation="vertical"
             android:layout_width="match_parent"
             android:layout_height="wrap_content">

    <TextView
            android:background="@android:color/holo_blue_light"
            android:id="@+id/txt"

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
</FrameLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:background="#ffffff"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <Button
            android:text="notifyDataSetChanged"
            android:layout_width="wrap_content"
            android:layout_height="48dp"
            android:id="@+id/button"
            app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"
    />
    <androidx.recyclerview.widget.RecyclerView
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
            app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toTopOf="@+id/button"
            android:id="@+id/recyclerView"/>
    <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="textPersonName"
            android:ems="10"
            android:id="@+id/editText"
            app:layout_constraintStart_toEndOf="@+id/button" app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...