Вопрос

Привет, я устанавливаю приложение для Android и использую интерфейс с вкладками. Я хотел бы три вкладка, текстовую вкладку (около), вкладку WebKit (Store) и вкладку GridView изображений (галерея), как в Учебник GridView.

У меня есть текст и вкладка WebKit, работая нормально, но я не могу выяснить лучший способ отформатировать GRIDVIEW на вкладке. С использованием Интерфейс с вкладками TUTRIAL В качестве примера я объявляю содержание вкладки в рамках события OnCreate () основного класса.

public class Woodroid extends TabActivity  {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Resources res = getResources(); // Resource object to get Drawables
        TabHost tabHost = getTabHost();  // The activity TabHost
        tabHost.setCurrentTab(0);

        TabHost.TabSpec spec;  // Resusable TabSpec for each tab
        Intent intent;  // Reusable Intent for each tab

        // Create an Intent to launch an Activity for the tab (to be reused)
        intent = new Intent().setClass(this, AboutActivity.class);

        // Initialize a TabSpec for each tab and add it to the TabHost
        spec = tabHost.newTabSpec("about").setIndicator("",
                          res.getDrawable(R.drawable.ic_tab_about))
                      .setContent(intent);
        tabHost.addTab(spec);

        // Do the same for the other tabs
        intent = new Intent().setClass(this, StoreActivity.class);
        spec = tabHost.newTabSpec("store").setIndicator("Store",
                res.getDrawable(R.drawable.ic_tab_store))
            .setContent(intent);
        tabHost.addTab(spec);


        intent = new Intent().setClass(this, GalleryActivity.class);
        spec = tabHost.newTabSpec("gallery").setIndicator("Gallery",
                          res.getDrawable(R.drawable.ic_tab_gallery))
                      .setContent(intent);
        tabHost.addTab(spec);


        tabHost.setCurrentTab(0);
    }
}

Итак, в галереяпевте.java у меня есть следующее

public class GalleryActivity extends Activity {
  public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

            GridView gridview = new GridView(this);
            gridview.setAdapter(new ImageAdapter(this));

            setContentView(gridview);
     }
}

Который является интерпретацией из учебника GridView. То, что отсутствует, - это определение макета GridView. Кажется, я могу заставить некоторые атрибуты, такие какgridview.setNumColumns(3);Но это не позволяет более гибко выглядеть равноправным от /layout/main.xml версии GridView

android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
Это было полезно?

Решение

Обязательно используйте Framelayout, CF Пример вкладка, установите Android: layout_width = "wrap_content" вместо fill_parent, а затем играть с гравитацией и весом на каждом элементе объекта, пока не смотрит, как вы этого не хотите.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top