Как заставить RelativeLayout работать со слиянием и включением?

Изменить узел для сервера происхождения Git

из: http://pseudofish.com/blog/2010/06/28/change-host-for -a-git-origin-server /

Надеюсь, это не то, что вам нужно сделать. Сервер, который я использовал для совместной работы в нескольких проектах git, с истечением срока действия имени домена. Это означало найти способ миграции локальных репозиториев, чтобы вернуться в синхронизацию.

Обновление: спасибо @mawolf за то, что вы указали, что есть простой способ с недавними версиями git (post Feb, 2010):

git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git

Подробнее см. на странице руководства.

Если вы используете более старую версию, попробуйте это:

Как предостережение, это работает только как это один и тот же сервер, просто с разными именами.

Предполагая, что новое имя хоста - newhost.com, а старый - oldhost.com, изменение довольно просто.

Отредактируйте файл .git/config в рабочем каталоге. Вы должны увидеть что-то вроде:

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git

Измените oldhost.com на newhost.com, сохраните файл, и все готово.

Из моего ограниченного тестирования (git pull origin; git push origin; gitx) все кажется в порядке. И да, я знаю, что это плохая форма, чтобы возиться с внутренностями git.

113
задан Vertexwahn 4 March 2016 в 16:43
поделиться

3 ответа

См. Наиболее высоко оцененный ответ ниже. Моя ужасно устарела


, я могу решить одну проблему , которую поднял Джастин : неспособность RelativeLayout управлять позиционированием включаемого объекта (по крайней мере, в этом простом случае на эмуляторе 1.6)

CommonsWare предлагает обернуть включения в уникальный родительский контейнер, но делает это для того, чтобы облегчить адресацию и определение области видимости с одинаковыми именами в пределах Джастин включает

Каждый из них должен иметь уникальный родительский контейнер, и вы должны вызвать findViewById () для этого контейнера (ViewGroup), а не для действия .

Фактически, вы также должны сделать это , чтобы RelativeLayout работал должным образом:

Это работает ( нижний колонтитул расположен правильно):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <include android:id="@+id/header" layout="@layout/header"
        android:layout_alignParentTop="true" />
    <WebView android:id="@+id/webView" android:layout_below="@id/header"
        android:background="#77CC0000" android:layout_height="wrap_content"
        android:layout_width="fill_parent" android:focusable="false" />
    <LinearLayout android:layout_alignParentBottom="true"
        android:layout_height="wrap_content" android:layout_width="fill_parent">
        <include android:id="@+id/footer" layout="@layout/footer" />
    </LinearLayout>
</RelativeLayout>

Это действительно not ( нижний колонтитул плавает вверху экрана):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <include android:id="@+id/header" layout="@layout/header"
        android:layout_alignParentTop="true" />
    <WebView android:id="@+id/webView" android:layout_below="@id/header"
        android:background="#77CC0000" android:layout_height="wrap_content"
        android:layout_width="fill_parent" android:focusable="false" />
    <include android:id="@+id/footer" layout="@layout/footer"
        android:layout_alignParentBottom="true" />
</RelativeLayout>

Пустой нижний колонтитул не будет выровнен по нижнему краю родительского объекта без окружающего LinearLayout .. Я бы не стал называть это ожидаемое поведение.

Кроме того, WebView, кажется, хорошо присоединяется к заголовку по идентификатору, но я считаю, что это иллюзия, поскольку он просто перемещается под заголовком по вертикали. Я также попытался установить кнопку прямо над включением нижнего колонтитула, но она тоже получилась плавающей и неправильной

В RelativeLayout было больше проблем в 1.5, но мне все еще нравится :)

33
ответ дан 24 November 2019 в 02:32
поделиться

попытка:

<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    tools:showIn="@layout/activity_home">
1
ответ дан 24 November 2019 в 02:32
поделиться

Кажется, что атрибуты android: layout_ * игнорируются при использовании в теге include и во всех объединенных макетах. отображаются друг над другом.

Я предполагаю, что из правил компоновки нельзя ссылаться на атрибуты android: id , которые определены в элементах , а только на те, которые находятся в «реальных» виджетах и контейнеры.

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

Просто: поместите их все в один файл.

Я не мог найти способ сделать это , потому что мне нужен доступ к каждому элементу в файлах макета слияния во время выполнения

Есть ли у вас один элемент или 1000, все содержимое должно быть доступно во время выполнения. Единственное исключение - если вы дублировали атрибуты android: id - вам нужно будет правильно определить область вызовов findViewById () , чтобы получить нужный, как и при получении виджетов. из строки ListView.

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

1
ответ дан 24 November 2019 в 02:32
поделиться
Другие вопросы по тегам:

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