Как разместить класс Java в XML - PullRequest
1 голос
/ 27 февраля 2012
    public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
CoverFlow coverFlow = new CoverFlow(this);
setContentView(coverFlow);
}

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

Ответы [ 4 ]

2 голосов
/ 27 февраля 2012

Вы можете использовать пользовательское представление в файле XML, просто используя его полное имя в качестве тега корневого элемента.Если бы CoverFlow был в пакете com.example, вы бы запрограммировали его примерно так:

<?xml version="1.0" encoding="utf-8"?>
<com.example.CoverFlow
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

Тогда, если бы вышеупомянутое было в файле res/layout/main.xml, вы бы использовали его, вызвав:

setContentView(R.layout.main);
1 голос
/ 27 февраля 2012

Я не уверен, хотите ли вы включить это Custom Components, которое вы определили как CoverFlow, если вы собираетесь включить эти компоненты CoverFlow в ваш xml макет, то вот основной пример:

<view
  class="com.example.CoverFlow" 
  id="@+id/CoverFlow"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="@android:drawable/empty"
  android:padding="10dip"
  android:scrollbars="vertical"
  android:fadingEdge="vertical" />
0 голосов
/ 27 февраля 2012

показывать одно представление каждый раз по вызову: viewSwitcher.showNext ();

<ViewSwitcher android:id="@+id/main_container"
        android:layout_width="fill_parent" android:layout_height="fill_parent">
        <com.example.CoverFlow
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
        <include layout="@layout/your_layout_here" android:layout_gravity="center"
            android:layout_width="fill_parent" android:layout_height="wrap_content" />
    </ViewSwitcher>

показывать с перекрытием:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                            android:orientation="vertical" android:id="@+id/container"
                            android:layout_width="wrap_content" android:layout_height="wrap_content">
                            <com.example.CoverFlow
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

       <!-- the other View/Layout here->

</FrameLayout>
0 голосов
/ 27 февраля 2012

Я думаю, что вы можете использовать RelativeLayout в качестве родительского представления. Использовать RelativeLayout.addView (coverFlow, new LayoutParams (fillParent, fillParent));setContentView (RelativeLayout);

и если вы хотите отобразить еще один.вы можете RelativeLayout.removeView (coverFlow);и добавьте целевой к RelativeLayout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...