Create a horizontal grid on Android Wear

0

How to create a grid of 1 row and 3 columns in Android Wear?

Also known as Android Wear 2D picker.

    
asked by Webserveis 21.11.2016 в 20:44
source

1 answer

1

Something I have achieved, the control to use is the GridViewPager .

Retrieved from the response of SO I've done the following test, adapting code to work, in a single row and 3 columns.

layout grid_view_pager_item.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center_vertical"
        android:gravity="center"
        android:background="#4400ff00"
        android:textColor="#000000"
        android:textSize="26sp"/>

</FrameLayout>

Adapter for grid MyGridViewPagerAdapter()

   private class MyGridViewPagerAdapter extends GridPagerAdapter {

        @Override
        public int getRowCount() {
            return 1;
        }

        @Override
        public int getColumnCount(int i) {
            return 3;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int row, int col) {
            final View view = LayoutInflater.from(
                    getApplicationContext()).inflate(
                    R.layout.grid_view_pager_item, container, false);
            final TextView textView = (TextView) view.findViewById(R.id.textView);
            textView.setText(String.format("Page:\n%1$s, %2$s", row, col));
            container.addView(view);
            return view;
        }

        @Override
        public void destroyItem(ViewGroup container, int i, int i1, Object obj) {
            container.removeView((View)obj);
        }

        @Override
        public boolean isViewFromObject(View view, Object obj) {
            return view==obj;
        }
    }

To load the adapter in GridViewPager

    final GridViewPager mGridPager = (GridViewPager) findViewById(R.id.pager);
    mGridPager.setAdapter(new MyGridViewPagerAdapter());
    
answered by 21.11.2016 / 21:12
source