Думаю, на ваш вопрос нет правильного ответа. Вы можете попробовать разные подходы.
Возможно, вы могли бы реализовать кнопки в контейнере фрагмента, как указал @smmehrab. Я считаю это более сложным решением, потому что, когда вы щелкаете элемент из контейнера, вы можете управлять представлениями контейнера, а не представлениями фрагмента. Если я правильно помню, вы получили бы NullPointer. Это происходит потому, что контекст при нажатии кнопки в контейнере фрагмента отличается от контекста при щелчке изнутри фрагмента. Таким образом, вы должны реализовать интерфейс в контейнере фрагмента, который прослушивает щелчки, а фрагмент улавливает щелчок. Вы могли бы это сделать, и я действительно делаю это в своем текущем приложении, но у меня нет выбора.
Вместо этого вы можете использовать Motion Layout (который расширяется от Constraint Layout) в качестве root представления вашего фрагмента вместо CardView. Таким образом, вы можете установить все представления фрагментов с плоской иерархией (плоские иерархии сокращают время рендеринга, так что это улучшение, и вы можете использовать CardView как один дочерний элемент) и установить кнопки прямо там, в макете движения (помните, движение layout будет видом root фрагмента). Вы можете прямо здесь установить прослушиватель кликов и реализовать анимацию между разными textViews.
Я уверен, что есть много других решений, примите это только как вклад.
Если вы незнакомы с Motion Layout вы можете просто погуглить, android официальная документация по этому поводу великолепна.