Вивадо дает проблемы при попытке нарезать массив с помощью непостоянного целого числа

final ViewPager.OnPageChangeListener onPageChangeListener =
    new ViewPager.OnPageChangeListener() {
      @Override public void onPageSelected(int position) {
        switch (position) {
          case 0:
            FragmentClass1 frag1 =
                (FragmentClass1) viewPager.getAdapter()
                    .instantiateItem(viewPager, viewPager.getCurrentItem());
            frag1.updateList("Custom text");
            break;
          case 1:
            break;
          case 2:
            break;
        }
      }

      @Override
      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

      }

      @Override public void onPageScrollStateChanged(int state) {
      }
    };


 viewPager.addOnPageChangeListener(onPageChangeListener);

viewPager.setAdapter(adapter);


viewPager.post(new Runnable() {
  @Override public void run() {
    onPageChangeListener.onPageSelected(viewPager.getCurrentItem());
  }
});

Иногда фрагмент может отправлять нулевой объект, поэтому вы можете запустить новый Runnable для решения проблемы при первой загрузке.

Спасибо, rick

0
задан Adhamzhon Shukurov 22 January 2019 в 13:24
поделиться

1 ответ

Проблема была решена во многом благодаря комментариям. Я поделюсь тем, что было изменено, чтобы заставить его функционировать; Во-первых, мое использование BRAM было слишком высоким. Очевидно, что перед попыткой синтеза я не получил никаких предупреждений об этом, но я столкнулся бы с этим во время синтеза или реализации, поэтому я настроил это в соответствии с таблицей данных моего чипа, чтобы не использовать больше, чем имеющийся BRAM. Во-вторых, я использовал форму динамического среза, которая не поддерживалась в Vivado, но поддерживалась другими инструментами, такими как Quartus, поэтому я изменил ее, используя ссылку, указанную в комментарии @dwikle. После этого я остался с ошибкой, которая была просто глупой ошибкой с моей стороны в моем объявлении: я объявил один из моих параметров как вектор и попытался присвоить его массиву. Так что я изменил это. Спасибо всем.

0
ответ дан user2996871 22 January 2019 в 13:24
поделиться
Другие вопросы по тегам:

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