#java #android #android-edittext
#java #Android #android-edittext
Вопрос:
Я новичок в Android, я пытаюсь создать простое приложение, в котором текст в edit text добавляется в recycler view, но как только открывается клавиатура, текст редактирования сжимается, и содержимое внутри него не отображается
Это activty_main.xml
<?xml version="1.0" encodin&="utf-8"?&&t;
<LinearLayout 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:layout_width="match_parent"
android:layout_hei&ht="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"&&t;
<LinearLayout
android:layout_wei&ht="1"
android:layout_width="match_parent"
android:layout_hei&ht="0dp" &&t;
<EditText
android:hint="ADD ITEMS"
android:layout_mar&in="10dp"
android:id="@ id/etItems"
android:textSize="24sp"
android:textColor="@android:color/black"
android:layout_width="0dp"
android:layout_hei&ht="match_parent"
android:layout_wei&ht="3" /&&t;
<Button
android:layout_mar&in="10dp"
android:id="@ id/btnAdd"
android:text="ADD"
android:layout_wei&ht="1"
android:autoSizeTextType="uniform"
android:layout_width="0dp"
android:layout_hei&ht="match_parent" /&&t;
</LinearLayout&&t;
<androidx.recyclerview.wid&et.RecyclerView
android:id="@ id/rvItems"
android:layout_mar&in="10dp"
android:layout_width="match_parent"
android:layout_hei&ht="0dp"
android:layout_wei&ht="6" /&&t;
</LinearLayout&&t;
Это MainActivity.Java
packa&e com.example.todolist_09082020;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.wid&et.LinearLayoutMana&er;
import androidx.recyclerview.wid&et.RecyclerView;
import android.app.Dialo&;
import android.os.Bundle;
import android.view.View;
import android.view.WindowMana&er;
import android.wid&et.Button;
import android.wid&et.EditText;
import android.wid&et.TextView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ArrayList<Strin&&&t; items;
Button btnAdd;
EditText etItems;
RecyclerView rvItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnAdd = findViewById(R.id.btnAdd);
etItems = findViewById(R.id.etItems);
rvItems = findViewById(R.id.rvItems);
items = new ArrayList<&&t;();
final ItemAdapter adapter = new ItemAdapter(items);
rvItems.setLayoutMana&er(new LinearLayoutMana&er(this));
rvItems.setAdapter(adapter);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Strin& text = etItems.&etText().toStrin&();
if(!text.equals("")){
items.add(text);
adapter.notifyDataSetChan&ed();
}
etItems.setText("");
}
});
}
}
Я пробовал решения из других сообщений, связанных с этим, но это не удалось решить.
Ответ №1:
Измените layout_hei&ht
EditText и его родительское LinearLayout на wrap_content
. Это должно решить вашу проблему
Ответ №2:
Ваша проблема заключается в линейном макете, удерживающем текст и высоту кнопки. Вы можете сделать несколько вещей, но минимальный способ предотвратить его свертывание — изменить
android:layout_hei&ht="0dp"
Для
android:layout_hei&ht="wrap_content"
Вероятно, вы также увидите более приятные результаты, если дополнительно измените высоту текста и кнопок на wrap_content
и выберете фиксированный размер шрифта ( 24sp
выглядит красиво) для текста вашей кнопки.
Комментарии:
1. Спасибо, сэр, Не могли бы вы, пожалуйста, объяснить, что вызывало проблему, когда высота была установлена на 0dp и использовались веса?