线性可滚动布局中的基线约束

时间:2017-07-20 10:44:05

标签: android user-interface xml-layout

我需要确保两个视图元素彼此相邻并且垂直于相同高度。我是使用Baseline Constraint做的,但目前我正在使用线性,可滚动的布局(滚动视图中的线性布局),当我点击一个元素时,它不会让我得到它基线约束并将其连接到其他地方。

XML代码:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/newOrderScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">
tools:context="eof.concrete.NewOrderActivity">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="@dimen/activity_horizontal_margin"
    android:layout_marginBottom="@dimen/activity_horizontal_margin"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:orientation="vertical"
    android:paddingBottom="16dp"
    android:baselineAligned="false">

    <TextView
        android:id="@+id/newOrderHeadlineTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Yeni Sipariş"
        android:textColor="@android:color/black"
        android:textSize="10pt"
        android:textStyle="bold"></TextView>

    <TextView
        android:id="@+id/materialCodeTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="Malzeme kodu"
        android:textSize="10pt"></TextView>

    <Spinner
        android:id="@+id/materialsSpinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Spinner>

    <TextView
        android:id="@+id/amountTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:text="Miktar"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/amountText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Örnek: 1000"
        android:inputType="numberDecimal" />

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="Teslim tarihi"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/dateText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Örnek: 10/01/2017"
        android:inputType="date" />

    <TextView
        android:id="@+id/cityTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="İl"
        android:textSize="10pt"></TextView>

    <Spinner
        android:id="@+id/citiesSpinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Spinner>

    <TextView
        android:id="@+id/provinceTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="İlçe"
        android:textSize="10pt"></TextView>

    <Spinner
        android:id="@+id/provincesSpinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Spinner>

    <TextView
        android:id="@+id/priceTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Pompa fiyatı"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/priceText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Örnek: 3.45"
        android:inputType="numberDecimal" />

    <TextView
        android:id="@+id/totalPriceTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Toplam fiyat: $$$"
        android:textSize="10pt"></TextView>

    <TextView
        android:id="@+id/paymentTypeTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Ödeme Şekli"
        android:textColor="@android:color/black"
        android:textSize="10pt"
        android:textStyle="bold"></TextView>

    <RadioGroup
        android:id="@+id/paymentTypeRadioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Peşin   "></RadioButton>

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/radioButton1"
            android:text="Kredi kartı   "></RadioButton>

        <RadioButton
            android:id="@+id/radioButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/radioButton2"
            android:text="Çek/Senet   "></RadioButton>
    </RadioGroup>

    <TextView
        android:id="@+id/authorizedTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="İrtibat yetkilisi"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/authorizedText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Örnek: Ali Kayataş"
        android:inputType="textPersonName" />

    <TextView
        android:id="@+id/authorizedPhoneTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="Yetkili telefon no"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/authorizedPhoneText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Örnek: 554 123 45 67"
        android:inputType="number" />

    <TextView
        android:id="@+id/facilityTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="Tesis"
        android:textSize="10pt"></TextView>

    <Spinner
        android:id="@+id/facilitiesSpinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Spinner>

    <TextView
        android:id="@+id/explanationTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="Açıklama"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/explanationText"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:ems="10"
        android:gravity="left|top"
        android:inputType="textMultiLine"></EditText>

    <Button
        android:id="@+id/confirmNewOrderButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="32dp"
        android:layout_marginRight="32dp"
        android:layout_marginBottom="16dp"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:background="@color/colorPrimary"
        android:text="Kaydet" />

</LinearLayout>

</ScrollView>

EditTexts应与TextViews处于同一水平线。

3 个答案:

答案 0 :(得分:2)

只需复制此代码并检查这是否是您想要的

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/newOrderScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="@dimen/activity_horizontal_margin"
    android:layout_marginBottom="@dimen/activity_horizontal_margin"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:orientation="vertical"
    android:paddingBottom="16dp"
    android:baselineAligned="false">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
    <TextView
        android:id="@+id/newOrderHeadlineTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Yeni Sipariş"
        android:textColor="@android:color/black"
        android:textSize="10pt"
        android:textStyle="bold"></TextView>

    <TextView
        android:id="@+id/materialCodeTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="Malzeme kodu"
        android:textSize="10pt"></TextView>

    <Spinner
        android:id="@+id/materialsSpinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        ></Spinner>
        </LinearLayout>
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/amountTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:text="Miktar"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/amountText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Örnek: 1000"
        android:inputType="numberDecimal"
        android:layout_marginTop="@dimen/activity_horizontal_margin"/>
    </LinearLayout>
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="Teslim tarihi"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/dateText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Örnek: 10/01/2017"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:inputType="date" />
    </LinearLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

<TextView
        android:id="@+id/cityTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="İl"
        android:textSize="10pt"></TextView>

    <Spinner
        android:id="@+id/citiesSpinner"
        android:layout_width="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:layout_height="wrap_content"></Spinner></LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

<TextView
        android:id="@+id/provinceTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"

        android:text="İlçe"
        android:textSize="10pt"></TextView>

    <Spinner
        android:id="@+id/provincesSpinner"
        android:layout_width="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:layout_height="wrap_content"></Spinner></LinearLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/priceTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Pompa fiyatı"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/priceText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:hint="Örnek: 3.45"
        android:inputType="numberDecimal" /></LinearLayout>


<TextView
        android:id="@+id/totalPriceTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Toplam fiyat: $$$"
        android:textSize="10pt"></TextView>


<TextView
        android:id="@+id/paymentTypeTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Ödeme Şekli"
        android:textColor="@android:color/black"
        android:textSize="10pt"
        android:textStyle="bold"></TextView>

    <RadioGroup
        android:id="@+id/paymentTypeRadioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Peşin   "></RadioButton>

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/radioButton1"
            android:text="Kredi kartı   "></RadioButton>

        <RadioButton
            android:id="@+id/radioButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/radioButton2"
            android:text="Çek/Senet   "></RadioButton>
    </RadioGroup>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

<TextView
        android:id="@+id/authorizedTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="İrtibat yetkilisi"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/authorizedText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:hint="Örnek: Ali Kayataş"
        android:inputType="textPersonName" /></LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

<TextView
        android:id="@+id/authorizedPhoneTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="Yetkili telefon no"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/authorizedPhoneText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:hint="Örnek: 554 123 45 67"
        android:inputType="number" /></LinearLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
<TextView
        android:id="@+id/facilityTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="Tesis"
        android:textSize="10pt"></TextView>

    <Spinner
        android:id="@+id/facilitiesSpinner"
        android:layout_width="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:layout_height="wrap_content"></Spinner></LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

<TextView
        android:id="@+id/explanationTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="Açıklama"
        android:textSize="10pt"></TextView>

    <EditText
        android:id="@+id/explanationText"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:ems="10"
        android:gravity="left|top"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:inputType="textMultiLine"></EditText></LinearLayout>

    <Button
        android:id="@+id/confirmNewOrderButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="32dp"
        android:layout_marginRight="32dp"
        android:layout_marginBottom="16dp"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:background="@color/colorPrimary"
        android:text="Kaydet" />

</LinearLayout>

</ScrollView>

答案 1 :(得分:1)

我希望这是你的意图

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/newOrderScrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal>

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"/>

                <EditText
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"/>

            </LinearLayout>

        </LinearLayout>
   </ScrollView>

内部LinearLayout确保它的childLayouts在另一个水平

之后显示为1

答案 2 :(得分:1)

你说&#34; Baseline Constraint&#34;它指的是ConstraintLayout的一项功能,但您使用的是LinearLayout

如果您想使用基线约束,则应将LinearLayout转换为ConstraintLayout。然后,您可以在XML中使用app:layout_constraintBaseline_toBaselineOf约束基线。