My Button text is cut off althought layout preview shows it correct way. When I run it on my real phone it is cut off with ... instead of going to new line. I am attaching screenshots:
what I want:
what I have:
Here is my code:
FragmentDiscover.kt
val dialog = BottomSheetDialogFragmentNew.newInstance()
dialog.show(parentFragmentManager, dialog.javaClass.simpleName)
BottomSheetDialogFragmentNew.kt
class BottomSheetDialogFragmentNew : BottomSheetDialogFragment() {
private var binding: BottomSheetDialogAddNewBinding? = null
companion object {
fun newInstance(): BottomSheetDialogFragmentNew {
val fragment = BottomSheetDialogFragmentNew()
return fragment
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
binding = BottomSheetDialogAddNewBinding.inflate(layoutInflater)
return binding!!.root
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return super.onCreateDialog(savedInstanceState).apply {
setCancelable(true)
setCanceledOnTouchOutside(true)
setOnKeyListener { _: DialogInterface, keyCode: Int, keyEvent: KeyEvent ->
if (keyCode == KeyEvent.KEYCODE_BACK && keyEvent.action == KeyEvent.ACTION_UP) {
dismiss()
}
return@setOnKeyListener false
}
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding!!.ivAnswerToSomeUsersRequestsInfo.setOnClickListener({
val bottomSheetDialogLayout = layoutInflater.inflate(R.layout.bottom_sheet_dialog_why_to_answer_users_questions, null)
val dialog = BottomSheetDialog(requireContext())
dialog.setContentView(bottomSheetDialogLayout)
dialog.setCanceledOnTouchOutside(true)
bottomSheetDialogLayout.findViewById<Button>(R.id.b_ok).setOnClickListener {
dialog.dismiss()
}
dialog.show()
})
val bottomSheet: FrameLayout = dialog?.findViewById(com.google.android.material.R.id.design_bottom_sheet)!!
bottomSheet.layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT
}
override fun onPause() {
super.onPause()
dismiss()
}
override fun onCancel(dialog: DialogInterface) {
super.onCancel(dialog)
dismiss()
}
}
bottom_sheet_dialog_add_new.xml
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_answer_to_request"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:text="Feeling strong today? 💪 "
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/b_answer_to_some_users_requests"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:text="Answer to some users requests!"
android:textAllCaps="false"
android:textColor="?attr/colorPrimary"
android:textSize="20sp"
app:layout_constraintEnd_toStartOf="@id/guideline"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_answer_to_request" />
<TextView
android:id="@+id/tv_or"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="or"
android:textSize="16sp"
android:layout_marginStart="20dp"
app:layout_constraintBottom_toTopOf="@id/b_example"
app:layout_constraintEnd_toStartOf="@id/guideline"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/b_answer_to_some_users_requests" />
<Button
android:id="@+id/b_example"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:text="This is an example text"
android:textAllCaps="false"
android:textColor="?attr/colorPrimary"
android:textSize="20sp"
app:layout_constraintEnd_toStartOf="@id/guideline"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_or" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.8" />
<ImageView
android:id="@+id/iv_answer_to_some_users_requests_info"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:adjustViewBounds="true"
android:background="@drawable/border_rounded_corners"
android:contentDescription="Answer to users requests - info"
android:foreground="?attr/selectableItemBackground"
android:src="@drawable/question_mark"
app:layout_constraintBottom_toBottomOf="@id/b_example"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/guideline"
app:layout_constraintTop_toTopOf="@id/b_answer_to_some_users_requests" />
</androidx.constraintlayout.widget.ConstraintLayout>
If you need any more informations let me know.
EDIT: Interesting thing. Once I changed view type from Button to TextView it started working. Why?
Solved!
I needed to change view type from Button
to androidx.appcompat.widget.AppCompatButton
, but why?