【问题标题】:How to create a full screen Android Wear app without cards如何在没有卡片的情况下创建全屏 Android Wear 应用
【发布时间】:2014-12-01 07:51:02
【问题描述】:

我是 Android 编程的新手,我正在尝试创建一个具有自定义布局且没有卡片的全屏 Android Wear 界面。我正在尝试关闭示例,但我不知道如何使用 CardFragments。我的 MainActivity 代码与示例基本相同,只是更改了一些名称。这是我的 GridViewPagerAdaper 的代码:

public class MyGridViewPagerAdapter extends FragmentGridPagerAdapter {

private final Context mContext;

public MyGridViewPagerAdapter(Context ctx, FragmentManager fm) {
    super(fm);
    mContext = ctx;
}

static final int[] BG_IMAGES = new int[]{
        R.drawable.bg,
};

/**
 * A simple container for static data in each page
 */
private static class Page {
    int titleRes;
    int textRes;
    int iconRes;
    int cardGravity = Gravity.BOTTOM;
    boolean expansionEnabled = true;
    float expansionFactor = 1.0f;
    int expansionDirection = CardFragment.EXPAND_DOWN;


    public Page(int titleRes) {
        this.titleRes = titleRes;
        this.textRes = textRes;
        this.iconRes = iconRes;
    }

    public Page(int titleRes, int textRes, int iconRes, int gravity) {
        this.titleRes = titleRes;
        this.textRes = textRes;
        this.iconRes = iconRes;
        this.cardGravity = gravity;
    }
}

private final Page[][] PAGES = {
        {
                new Page(R.drawable.tuner),
        },
        {
                new Page(R.drawable.metronome),
                new Page(R.drawable.metroplain)
        },
};
@Override

public Fragment getFragment(int row, int col) {
    Page page = PAGES[row][col];
//        String title = page.titleRes != 0 ? mContext.getString(page.titleRes) : null;
//        String text = page.textRes != 0 ? mContext.getString(page.textRes) : null;
    CardFragment fragment = CardFragment.create("", "", page.iconRes);
    // Advanced settings
    fragment.setCardGravity(page.cardGravity);
    fragment.setExpansionEnabled(page.expansionEnabled);
    fragment.setExpansionDirection(page.expansionDirection);
    fragment.setExpansionFactor(page.expansionFactor);
    return fragment;
}

@Override
public ImageReference getBackground(int row, int column) {
    return ImageReference.forDrawable(BG_IMAGES[row % BG_IMAGES.length]);
}

@Override
public int getRowCount() {
    return PAGES.length;
}

@Override
public int getColumnCount(int rowNum) {
    return PAGES[rowNum].length;
  }
}

摆脱卡片并使用自定义布局的最佳方法是什么?感谢您的帮助。

【问题讨论】:

    标签: java android android-fragments wear-os


    【解决方案1】:

    在你的适配器中,给你的片段如下:

    private final Activity mContext;
    private final Fragment[][] mFragment;
    
    public MyGridViewPagerAdapter(Activity ctx, FragmentManager fm, Fragment[][] fragments)
    {
      super(fm);
      mContext = ctx;
      this.mFragment = fragments;
    }
    

    然后重写以下方法:

    @Override
    public Fragment getFragment(int row, int col) 
    { 
      return mFragment[row][col]; 
    }
    
    @Override
    public int getRowCount() 
    { 
      return mFragment.length; 
    }
    
    @Override
    public int getColumnCount(int rowNum) 
    { 
      return mFragment[rowNum].length; 
    }
    

    然后在您的活动中执行以下操作:

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_my);
    
      final GridViewPager pager = (GridViewPager) findViewById(R.id.pager);
      final Fragment[][] items = {
            {
                    CusmtomFragment.newInstance("your","arguments"),
                    CusmtomFragment.newInstance()
            },
            {
                    OtherFragment.newInstance(),
                    AnotherFragment.newInstance(1234)
            }
      };
      // ....
      pager.setAdapter(new MyGridViewPagerAdapter(this, getFragmentManager(), items));
    }
    

    希望对你有帮助!

    【讨论】:

    • 谢谢。我对 newInstances 的参数有疑问。它一直说 String 或 java.lang.string 不能应用于 (thing,thing)。有什么建议吗?
    【解决方案2】:

    如果您实施自定义可穿戴应用程序,您可以做任何您想做的事情,包括自定义 UI。

    问题多到Is there any way to detect if the clock is round?

    或者如何在可穿戴设备上启动应用程序。这是通过一项特殊服务完成的。基本上你就是那个的dataApi。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      相关资源
      最近更新 更多