Как заставить предмет занять фиксированную позицию на экране? - PullRequest
1 голос
/ 02 мая 2019

Как разместить объект на экране таким образом, чтобы он не двигался, даже если я прокручивал? Я использую LinearLayout.

Ответы [ 2 ]

3 голосов
/ 03 мая 2019

Если вы готовы обернуть свой LinearLayout в RelativeLayout, это будет работать и будет гибким, так как вы можете сделать большинство видов любого вида (например, Button) фиксированными.

Файл макета

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:fillViewport="false">
      <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView
          android:id="@+id/txtScrollingText"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textAppearance="?android:attr/textAppearanceLarge" />
      </LinearLayout>
    </ScrollView>
  <Button
    android:layout_width="600dp"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="This Button Is Fixed"/>
</RelativeLayout>

Скриншот

enter image description here

1 голос
/ 03 мая 2019

Решение:

Использовать FloatingActionButton будет работать.

Когда вы создаете новый простой проект Xamarin.Android, в activity_main.axml:

есть образец FloatingActionButton.
<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center|center"
    android:layout_margin="@dimen/fab_margin"
    app:srcCompat="@android:drawable/ic_dialog_email" />

А в упражнении вы можете настроить событие click.

FloatingActionButton fab = FindViewById<FloatingActionButton>(Resource.Id.fab);
fab.Click += FabOnClick;

Вот изображение:

screen:

...