У меня есть проблема, на которую было дано много ответов, но я все равно не могу заставить ее работать. Я хочу иметь клип макета, чтобы его дети следовали плану своих родителей. Я сделал это настолько просто, насколько это возможно.
Макет I wi sh, чтобы он обрезал его дочерние элементы:
<LinearLayout
android:id="@+id/parentView"
android:layout_width="200dp"
android:layout_gravity="center"
android:layout_margin="40dp"
android:layout_height="40dp"
android:weightSum="2"
android:background="@drawable/simple_round_rect"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:text="Option 1" />
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="end"
android:layout_height="match_parent"
android:text="Option 2" />
</LinearLayout>
Фон:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorAccent" />
<corners android:radius="60dp" />
</shape>
Activity :
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_bajs)
parentView.clipToOutline = true
}
Результат:
Ожидаемый результат - для Textviews будет обрезан текст и / или фон. выкл. Если я использую view.outlineProvider.getOutline для представления, я получаю, что наброски canClip
.
Есть куча учебников, SO, android документация. Но это сводится к тому, что они говорят «Вот и все», и это явно не работает.
Есть идеи?