Nano Hash - криптовалюты, майнинг, программирование

Динамически переходить на Listview из Gridview

Я хочу изменить представление frm gridview на listview после того, как пользователь щелкнул представление во фрагменте.

Но я не в состоянии сделать это. Много искал в Google Quora и SO, но не нашел решения.

Вот мой код фрагмента

public class FragmentAlbum extends Fragment  {

@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,Bundle savedInstanceState) {
   root = (ViewGroup) inflater.inflate(R.layout.album,container, false);


    activity = getActivity();
        lv=(GridView) root.findViewById(R.id.gridview);
        lv.setAdapter(adaptor);

        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                        public void onItemClick(AdapterView<?> parent, View view,int position, long id) {

          root = (ViewGroup) inflater.inflate(R.layout.album_list,container, false);
         listview=(ListView) root.findViewById(android.R.id.list);

                  listview.setAdapter(adaptor1);    
                  break;

         }

             }}
);

        return root;
}

. Когда я нажимаю, представление остается в исходном представлении Gridview, оно не отключается.

альбом представляет собой макет gridview.

Album_list — это макет списка.

я не получаю никаких ошибок, но логически это не работает.

Может ли кто-нибудь предложить мне мою ошибку?

Спасибо заранее


Ответы:


1

Вы можете использовать recyclerview для этого.

Установите layoutmanager в качестве менеджера gridlayout для просмотра сетки и менеджера linearlayout для просмотра списка.

используйте свою логику в соответствии с условиями.

26.10.2017
  • Эй, @Shashank Garg, не могли бы вы сказать мне, как я могу изменить макеты в представлении сетки. Я имею в виду, что у меня разные макеты для просмотра сетки и просмотра списка. 26.06.2018

  • 2

    Один из доступных вам вариантов — использовать GridView и динамически изменять количество столбцов в зависимости от состояния. GridView имеет свойство numColumns, которое вы можете изменить во время выполнения, а затем применить, вызвав notifyDataSetChanged на вашем адаптере.

    30.08.2015
  • Взгляните на этот ответ stackoverflow.com/questions/12837780/ 30.08.2015
  • Я хотел указать вам правильное направление, вместо того, чтобы делать работу за вас. 30.08.2015

  • 3

    Вы можете использовать RecyclerView и изменить ListView на GridView в зависимости от количества столбцов, как показано ниже, это очень просто по сравнению с другими сообщениями.

    private void setLayoutManager() {
        if (mColumnCount <= 1) {
            mColumnCount = 1;
            recyclerView.setLayoutManager(new LinearLayoutManager(context));
        } else {
            recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount));
        }
    }
    

    Подробнее см. в этой записи блога

    17.11.2016

    4

    Если вы хотите программно изменить стиль GridView на стиль ListView и стиль ListView на GridView. Затем просто программно измените значение NO-OF-COLUMNS для gridview. Как здесь

      switchIV.setOnClickListener(new OnClickListener()
        {
            public void onClick(View arg0) 
            {
    
                if(style==0)
                {
    
                    //Change gridview to listview style
                    gridview.setNumColumns(1);
                    Update_with_ListView_Style();
                    style=1;
    
                }
                else
                {
                    //change gridview back to gridview style with 3 columns
                    gridview.setNumColumns(3);
                     Update_with_GridView_Style();
                     style=0;
    
                }
            }
    
        });
    
    23.01.2017
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..