Каково различие между библиотекой классов и платформой

Чтобы это работало, вы должны поместить BottomNavigationView в качестве прямого потомка макета CoordinatorLayout. Измените ваш макет примерно так:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 
         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:layout_width="match_parent"
         android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_dashboard" />

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="?android:attr/windowBackground"
        android:foreground="?attr/selectableItemBackground"
        app:itemBackground="@color/bgBottomNavigation"
        app:itemIconTint="@android:color/white"
        app:itemTextColor="@android:color/white"
        app:menu="@menu/menu_bottom_navigation"
        app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"/>
</android.support.design.widget.CoordinatorLayout>

Возьмите ConstraintLayout в качестве корня в вашем @layout/content_dashboard и поместите RecyclerView и другие виды там:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:showIn="@layout/app_bar_dashboard">

    <android.support.v7.widget.RecyclerView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:id="@+id/recycler"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layoutManager="android.support.v7.widget.LinearLayoutManager"
        />
        ....
        ....
</android.support.constraint.ConstraintLayout>
16
задан Bill the Lizard 9 August 2010 в 12:26
поделиться

9 ответов

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

Это также известно как голливудский принцип (не звоните нам, мы звоним Вам).

Между прочим, существует также хорошая статья Wikipedia об этой теме.

22
ответ дан 30 November 2019 в 15:12
поделиться

Вы используете библиотеку классов в записи Вашего кода, но Вы кодируете в платформе.

Термин "платформа" предназначен для вызова смысла "того, чтобы быть в среде". Если бы я должен был поместить (ограниченную) аналогию с ним, то я сказал бы, что библиотека классов похожа на способность съесть вино сыра и напитка, тогда как платформа похожа на посещение Франция; испытание культуры. Платформа является структурой, вокруг которой Вы создаете свою программу. Библиотека классов является инструментами, которые Вы используете (возможно в платформе).

Конечно, платформа будет обычно содержать библиотеки классов..NET, например, имеет "кучу" библиотек классов, которые включены во всю платформу.

13
ответ дан 30 November 2019 в 15:12
поделиться

Библиотекой классов обычно является DLL или пакет классов, которые можно "включать" / "ссылка" в решение и повторное использование.

Платформа обычно является повторяющимся шаблоном/решением, предназначенным к определенному контексту, например, Платформе GUI. Платформа больше, чем часто подразумевают, что Вы пишете определенные части, как продиктовали разработчики платформы, вставляете их в, ожидала/исправляла места, и она должна работать.

  • например, Spring является платформой для DI. Вы пишете XML-файлы в формате, продиктованном разработчиками, и затем платформа позволяет, Вы для получения собранных классов, не имея необходимость волноваться о платформе делаете это.
  • Направляющие являются платформой в Ruby для веб-приложений RAD. Вы только пишете модели, контроллеры и представления, и у Вас есть рабочее веб-приложение менее чем за час.
  • BCL является рядом библиотек классов так, чтобы Вы не реализовывали структуры данных и часто используемые типы в.NET и просто получить протестированные доказанные реализации бесплатно только включая их.

Платформа обычно содержит несколько библиотек классов. Как всегда, термины используются неоднозначным способом в наше время.. но вышеупомянутое представляет более общую интерпретацию условий... мой по крайней мере :)

6
ответ дан 30 November 2019 в 15:12
поделиться

Часто Вы пользуетесь библиотеками для вкладывания определенной функциональности СОБСТВЕННЫЙ software/infrastructre. Например, печатая штрихкод, Вы пользовались бы библиотекой, чтобы сделать так. Платформа абстрагирует целый класс проблем, возможно, проблема записи веб-приложений. Чтобы сделать так, платформа обеспечивает "кадр" со всей функциональностью и тупиками, против которых можно программировать.

5
ответ дан 30 November 2019 в 15:12
поделиться

Вы называете код библиотеки классов, где, поскольку платформа называет Ваш код

4
ответ дан 30 November 2019 в 15:12
поделиться

Библиотека классов является просто рядом классов, инкапсулировавших в определимую единицу, таких как блок. Термин не ограничивается никаким конкретным языком или платформой.

Библиотека базовых классов (BCL) является конкретным термином атрибуты к набору класса libaries, которые прибывают предварительно установленные с Платформой.NET, которые обеспечивают классы, аккуратно организованные в пространства имен так, чтобы у Вас был API, против которого можно создать Ваши собственные решения.

Платформа является более широким термином, который является содержащим из библиотек классов, виртуальная машина, которая справляется с управляемым выполнением процессов, обеспечивает среду выполнения, наряду с другими услугами, такими как управление памятью и обработка исключений. Посмотрите Платформу.NET для получения дополнительной информации.

4
ответ дан 30 November 2019 в 15:12
поделиться

Я утверждал бы, что эти два являются довольно взаимозаменяемыми... - это - просто ряд общего повторно используемого кода (в любой платформе, для которой Вы нацелены), обычно предоставляемый платформой.

Возможно, Вы могли утверждать, что BCL обычно представляет "чистые" модули (не зависящий от производителя продукта), тогда как "платформа" может (в зависимости от того, как Вы используете термин), включают сделанные на заказ модули поставщика. Но это это, возможно, открывается к локальной интерпретации.

2
ответ дан 30 November 2019 в 15:12
поделиться

Платформа является предположительно связным набором одной или нескольких библиотек классов. Java и платформы.NET, например, составлены из сотен библиотек классов. В.NET существует, пользовательским, но не обязательно, корреспонденция между блоками и библиотеками классов. В Java существует грубая корреспонденция между пространствами имен и библиотеками классов.

Хотя я никогда не замечал фразу "библиотека базовых классов", я ожидал бы, что такая вещь содержать абстрактные классы намеревалась быть разделенной на подклассы перед использованием.

Платформа в смысле моего первого абзаца подразумевает полноту в области библиотеки. Например, Вы ожидали бы, что платформа обработки изображения будет содержать все, что необходимо управлять изображениями, в пределах от синтаксических анализаторов формата файла к графическим операциям в оперативной памяти.

1
ответ дан 30 November 2019 в 15:12
поделиться

Я думаю о платформе как о шаблоне, которому приложение может приспособить, определенный в ряде библиотек.

"Основная" библиотека классов могла бы означать несколько вещей в зависимости от контекста; это могло относиться к классам, которые разработаны, чтобы быть полученными из, который является общим подходом в платформах, или это могло просто относиться к оперативной библиотеке классов, которые, как предполагают, полезны в любом приложении и так считаются "основной" потребностью, почти часть языка (например, контейнерные классы).

0
ответ дан 30 November 2019 в 15:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: