Как мне использовать FAB(плавающая кнопка действия), чтобы скрыть или показать мое текстовое поле редактирования?
Я новичок в дизайне материалов, включаю и играю с парой функций. Есть ли пример, который я могу проверить или загрузить какой-либо пример, который показывает мне, как скрыть / показать мое текстовое поле редактирования при нажатии? Это мой код:
<EditText
android:id="@+id/messageEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/chatSendButton"
android:autoText="true"
android:hint="type message" />
<Button
android:id="@+id/chatSendButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="@color/background_floating_material_dark"
android:text="Send MSG"
android:textColor="@color/background_material_light"/>
То, что я пытаюсь сделать, это поместить это в FAB, поэтому, когда я нажимаю кнопку FAB, это окно редактирования текста (с кнопкой) всплывает, но как только оно появляется, оно остается там до тех пор, пока я снова не нажму кнопку FAB. Любая такая функциональность уже реализована, я могу следовать? Я бы предпочел самый простой и эффективный подход. Есть какие-нибудь подсказки?
1 ответ
Вы не можете иметь эти представления внутри вашего FAB. Объявите ваш fab в xml следующим образом:
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_edit"
android:layout_gravity="right|bottom"
android:id="@+id/edit"
android:theme="@style/Widget.Design.FloatingActionButton" />
В вашей активности onCreate():
FloatingActionButton edit = (FloatingActionButton)findViewById(R.id.edit);
edit.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
EditText editText = (EditText)findViewById(R.id.messageEdit);
if(editText.getVisibility() == View.VISIBLE)
{
editText.setVisibility(View.INVISIBLE);
}
else {
editText.setVisibility(View.VISIBLE);
}
}
});