From 98114cb196fe8bd4a68fa819233aba43d8c9aec9 Mon Sep 17 00:00:00 2001 From: Wildan Kurniadi Date: Wed, 22 Jul 2020 14:39:37 +0700 Subject: [PATCH] Flexbox - TagEdittext work as we want --- TagEdittext/.idea/vcs.xml | 6 ++ .../com/example/tagedittext/MainActivity.java | 64 ++++++++-------- .../app/src/main/res/layout/activity_main.xml | 73 ++----------------- 3 files changed, 41 insertions(+), 102 deletions(-) create mode 100644 TagEdittext/.idea/vcs.xml diff --git a/TagEdittext/.idea/vcs.xml b/TagEdittext/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/TagEdittext/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TagEdittext/app/src/main/java/com/example/tagedittext/MainActivity.java b/TagEdittext/app/src/main/java/com/example/tagedittext/MainActivity.java index e33a44d..e7c0f8c 100644 --- a/TagEdittext/app/src/main/java/com/example/tagedittext/MainActivity.java +++ b/TagEdittext/app/src/main/java/com/example/tagedittext/MainActivity.java @@ -1,6 +1,7 @@ package com.example.tagedittext; import androidx.appcompat.app.AppCompatActivity; +import androidx.constraintlayout.widget.ConstraintLayout; import androidx.recyclerview.widget.RecyclerView; import android.graphics.Bitmap; @@ -29,45 +30,25 @@ public class MainActivity extends AppCompatActivity { FlexboxLayout flexboxLayout; - FlexboxLayout flexboxLayout2; - RecyclerView rvTags; - EditText editText, et2; - Button btn, btn2; - RvAdapter adapter; + ConstraintLayout constraintLayout; + EditText initialEditText; + Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + constraintLayout = findViewById(R.id.constraintLayout); flexboxLayout = findViewById(R.id.flexboxlayout); - flexboxLayout2 = findViewById(R.id.flexboxlayout2); - editText = findViewById(R.id.editText); - et2 = findViewById(R.id.et2); + initialEditText = findViewById(R.id.editText); btn = findViewById(R.id.button); - btn2 = findViewById(R.id.button2); - rvTags = findViewById(R.id.rv_tags); - - adapter = new RvAdapter(); - FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(this, FlexDirection.ROW, FlexWrap.WRAP); - rvTags.setLayoutManager(layoutManager); - rvTags.setAdapter(adapter); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (!editText.getText().toString().isEmpty()) { - addSpecialist(editText.getText().toString()); - } else { - Toast.makeText(MainActivity.this, "tag tidak boleh kosong", Toast.LENGTH_SHORT).show(); - } - } - }); - - btn2.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (!et2.getText().toString().isEmpty()) { - addToRecyclerView(et2.getText().toString()); + if (!initialEditText.getText().toString().isEmpty()) { + addSpecialist(initialEditText.getText().toString()); + initialEditText.setText(""); } else { Toast.makeText(MainActivity.this, "tag tidak boleh kosong", Toast.LENGTH_SHORT).show(); } @@ -76,14 +57,12 @@ public void onClick(View v) { } - private void addToRecyclerView(String tag) { - adapter.addTagSpecialist(tag); - } - private void addSpecialist(final String tagSpecialist) { -// flexboxLayout.removeAllViews(); + if(initialEditText != null){ + flexboxLayout.removeView(initialEditText); + } - TextView tvSpecialist = new TextView(this); + final TextView tvSpecialist = new TextView(this); tvSpecialist.setText(tagSpecialist); tvSpecialist.setTextSize(TypedValue.COMPLEX_UNIT_SP, Float.parseFloat("16")); tvSpecialist.setBackground(getResources().getDrawable(R.drawable.bordered_rectangle_rounded_corners)); @@ -95,12 +74,29 @@ private void addSpecialist(final String tagSpecialist) { lp.setMargins(10, 10, 10, 10); tvSpecialist.setLayoutParams(lp); flexboxLayout.addView(tvSpecialist); + //hitung selisih view + int emptySpace = flexboxLayout.getRight() - tvSpecialist.getRight(); + FlexboxLayout.LayoutParams lpEditText; + if (emptySpace < 75){ + lpEditText = new FlexboxLayout.LayoutParams(FlexboxLayout.LayoutParams.WRAP_CONTENT, FlexboxLayout.LayoutParams.FILL_PARENT); + }else{ + lpEditText = new FlexboxLayout.LayoutParams(emptySpace, FlexboxLayout.LayoutParams.FILL_PARENT); + } + if (initialEditText == null){ + initialEditText = new EditText(this); + initialEditText.setLayoutParams(lpEditText); + } + flexboxLayout.addView(initialEditText); tvSpecialist.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + flexboxLayout.removeView(tvSpecialist); Toast.makeText(MainActivity.this, tagSpecialist, Toast.LENGTH_SHORT).show(); } }); + + //add the edittext at the end of flexboxLayout + final EditText etNew = new EditText(this); } } diff --git a/TagEdittext/app/src/main/res/layout/activity_main.xml b/TagEdittext/app/src/main/res/layout/activity_main.xml index 474322f..f8d24c8 100644 --- a/TagEdittext/app/src/main/res/layout/activity_main.xml +++ b/TagEdittext/app/src/main/res/layout/activity_main.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:id="@+id/constraintLayout" tools:context=".MainActivity"> @@ -27,7 +28,7 @@ android:layout_alignParentEnd="true" android:layout_marginStart="32dp" android:layout_marginEnd="32dp" - app:flexDirection="row_reverse" + app:flexDirection="row" app:flexWrap="wrap" app:justifyContent="flex_start" app:layout_constraintEnd_toEndOf="parent" @@ -36,7 +37,6 @@ app:layout_constraintTop_toTopOf="parent"> - - - - - - - - -