Это хорошая идея использовать макет Constrain внутри Scrollview в Android? - PullRequest
1 голос
/ 11 октября 2019

Я работаю в качестве OEM-разработчика, где мы используем общую библиотеку графического интерфейса для всех приложений. В нашем приложении мы расширяем ту библиотеку GUI, которая несет ScrollView как базовый макет для моего приложения. Теперь моя команда планирует использовать ограниченную разметку в приложении. Можем ли мы использовать компоновку ограничений внутри Scroll View?

Я преобразовал линейный макет в макет с ограничениями, используя инструмент Android Design. Но прокрутка не работает.

<ScrollView
    style="@style/Body_ScrollView"
    android:id="@+id/no_sim_layout">

    <LinearLayout style="@style/Body.LinearLayout.No_Sim">
        <-- All other child views are going here-->
    </LinearLayout>

</ScrollView>

Хотите конвертировать в

<ScrollView
    style="@style/Body_ScrollView"
    android:id="@+id/no_sim_layout">

    <ConstrainLayout style="@style/Body.LinearLayout.No_Sim">
           <-- All other child views are going here-->
    </ConstrainLayout>

</ScrollView>

1 Ответ

0 голосов
/ 11 октября 2019

Да, определенно, макет Constraint сначала понимает это:

Намерение ConstraintLayout состоит в том, чтобы оптимизировать и сгладить иерархию представлений ваших макетов , применяя некоторые правила к каждому представлению, чтобы избежать вложения.Кто рекомендует правила Относительного макета.

Более того, он предоставляет свойство динамического выравнивания вида в виде ограничений, базовых линий, цепочек представлений и многих других, которые обеспечивают плавную иерархию сглаживания. Если мы использовали Constraint в Scrollview, нам не нужно управлять каждым свойством вида, например, взвешиванием в LinearLayout и многими другими. Это намного более просто и непосредственно получает преимущества от предоставленных зависимостей.

<ConstrintLayout>
   <ScrollView>
    <ConstrintLayout>
        //Single ParentConstrain else child
    </ConstrintLayout>
   </ScrollView>
</ConstrintLayout>

Если пойдет другим путем, это сделает ваш сложный XML-код более трудным для понимания и сложным для создания пользовательского интерфейса на основе взвешивания иПоложение, рассчитанное во время выполнения на машине .

Ограничения напрямую зависят от входных зависимостей .

 <ConstrintLayout>
       <ScrollView>
        <LinearLayout>
            //Many different view to manage view
        </LinearLayout>
       </ScrollView>
    </ConstrintLayout>
...