Ответы пользователя по тегу Xamarin
  • Как поднять элементы?

    a13xsus
    @a13xsus
    Lazy developer
    Неплохо было бы переделать это в relativelayout. Ну а чтобы все элементы (и кнопка) поднимались над софт-клавиатурой, нужно в манифест соответствующей активити добавить android:windowSoftInputMode="adjustResize":

    <activity android:name=".MyActivity"
        android:windowSoftInputMode="adjustResize">
    </activity>


    Но тогда картинка-бекграунд у layout тоже будет сжиматься. Этого можно избежать, если задавать фон в onCreate самой активити, и убрать его из xml:

    getWindow().setBackgroundDrawableResource(R.drawable.bg);


    Сам ImageView тогда можно оставить сверху как есть, тогда он в принципе будет на месте. Правда тогда нужно будет тестить для разных экранов и ориентаций, могут быть косяки. На скорую руку я набросал так (довольно кривая разметка, но для примера сойдет):

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:local="http://schemas.android.com/apk/res-auto"
        android:id="@+id/rel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    
        android:orientation="vertical"
        android:isScrollContainer="false">
    
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="160dp"
            android:src="@drawable/firebase_lockup_400"/>
    
        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="55dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentStart="true"
            android:background="@color/colorPrimary"
            android:text="Log In"
            android:textAllCaps="false"
            android:textColor="#FFFFFF"
            android:textSize="17sp"/>
    
        <android.support.design.widget.TextInputLayout
            android:id="@+id/text2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@id/button1">
    
            <EditText
                android:id="@+id/password_input"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Password"
                android:inputType="textPassword"
                android:textColorHint="@android:color/white"
                android:textCursorDrawable="@drawable/star"/>
        </android.support.design.widget.TextInputLayout>
    
        <android.support.design.widget.TextInputLayout
            android:id="@+id/text1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@id/text2">
    
            <EditText
                android:id="@+id/email_input"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Enter email"
                android:inputType="textEmailAddress"
                android:textColor="@android:color/white"
                android:textCursorDrawable="@drawable/star"/>
        </android.support.design.widget.TextInputLayout>
    
    </RelativeLayout>


    Выглядит примерно так:

    3501ba9764a8429dbadd6533a5b521b0.png
    Ответ написан
  • Адаптивность верстки на андроид?

    a13xsus
    @a13xsus
    Lazy developer
    Неясно, зачем использовать настолько большие значения для отступов, но если уж нужно, тогда используй предопределенные значения для каждого типа экрана из xml файла в res/values.

    Создай, например, файл dimens.xml в res/values подобного содержания

    <resources
        xmlns:android="http://schemas.android.com/apk/res/android">
        <dimen name="my_margin">250dp</dimen>
    </resources>


    И продублируй его для каждого типа экрана в папках values-large, values-sw600dp, values-xlarge и так далее, всякий раз изменяя значение my_margin на определенное для каждого типа экрана.

    Тогда в layout указывай все значения с помощью переменных. Например,

    android:layout_margin="@dimen/my_margin"

    Подробнее о поддержке разных типов экрана здесь: https://developer.android.com/guide/practices/scre...
    Ответ написан
    Комментировать
  • Можно ли создавать приложение для Android на C#?

    a13xsus
    @a13xsus
    Lazy developer
    Странный вопрос, учитывая, что в тегах вы уже отметили Xamarin. Конечно можно. Либо в Xamarin Studio либо в Xamarin for Visual Studio. Разумеется на С#. Довольно нативное и производительное приложение получается, весь функционал джавы доступен в c#.

    Но целесообразней учить C# и писать кроссплатформенные приложения (Android, iOS, WP). Xamarin для этого и задуман.
    Ответ написан
    3 комментария
  • Как избавиться от бага в Xamarin Studio (Windows) с пропадающими главным меню?

    a13xsus
    @a13xsus Автор вопроса
    Lazy developer
    Переключился на beta ветку, установил Xamarin Studio 6.0, весь этот баг не проявлялся и вероятно уже не проявится. В шестой версии под Windows заметно переработали интерфейс, видимо это и исправило проблему.
    Ответ написан
    Комментировать