Форум программистов, компьютерный форум CyberForum.ru

Архитектура приложения - Xamarin

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Xamarin Есть литература по Xamarin и формам? http://www.cyberforum.ru/xamarin/thread1799805.html
Есть ли литература по xamarin и формам?
Xamarin Скролинг в listview Здравствуйте. Проблема из работой scroll в listview. Есть viewcell в котором есть текст, картинка и разное количество картинок(то есть viewcell не повторяется, а view елементов может быть разное количество, по этой же причине я не могу использовать ListViewCachingStrategy.RecycleElement, т.к. стратегия работает только, если в каждом елементе listview одинаковое количество view елементов Что... http://www.cyberforum.ru/xamarin/thread1797733.html
Изображения, image, imageview, версии xmlns и другие интересности Xamarin
совсем запутался в этом ксамарине. ересь какая-то. ну, начну по порядку: самое первое - какая разница между проектами, которые можно создать? есть Blank App (Native portable), Blank App (Xamarin Forms Portable), Blank Xaml App (Xamarin Forms Portable). то, что увидел я, так это что в Blank App (Native portable) нельзя нормально добавить Xamarin Forms, и там какой-то свой xaml. в Blank App...
Изменение картинки в imageview по нажатию button Xamarin
Делаю первые шаги в изучении xamarin. Пишу для android и не могу понять как сделать, чтобы менялась картинка при нажатии клавиши. В вижуале подходила примерно следующая команда pictureBox1.Image = Image.FromFile(@"C:\Users\Alex\Desktop\папка\Безымянный1.png");. Тут она не пашет... Добавлено через 23 минуты Разобрался сам быстрее, чем думал) Вот код если кому понадобится....
Xamarin Visual Studio 2015. Выполнить код при запуске http://www.cyberforum.ru/xamarin/thread1796471.html
Тривиальная задача, но нигде не могу найти решение. Каким образом можно сделать так, тобы некоторый код выполнялся однократно при запуске приложения?
Xamarin Новый проект Xamarin в Microsoft Visual Studio Community 2015 создается с ошибками Здравствуйте. При создании нового проекта в Microsoft Visual Studio Community 2015, новый проект создается с ошибками. Поначалу появляются многочисленные предупреждения, а далее, при переходе к части проекта отвечающий за андроид, при открытии MainActivity.cs, появляется ошибка: "Ошибка CS0234 Тип или имя пространства имен "FormsApplicationActivity" не существует в пространстве имен... подробнее

Показать сообщение отдельно
user20011993
11 / 11 / 0
Регистрация: 19.10.2012
Сообщений: 479

Архитектура приложения - Xamarin

29.08.2016, 16:15. Просмотров 508. Ответов 5
Метки (Все метки)

всем привет.
в приложении используется несколько фрагментов (из библиотек Android.Support.V7 и Android.Support.V4). на них есть кнопки, которые должны вызывать другие фрагменты. чтобы показать фрагмент, нужно сначала спрятать текущий. информация о всех фрагментах, и какой из них текущий-содержится в mainactivity. получается, что фрагмент должен а)иметь доступ к методам mainactivity, которые меняют фрагменты, b)иметь доступ к инструментам, которые находятся не в mainactivity, но имеют такой же функционал.

код mainactivity
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
namespace Global.Droid
{
    [Activity (Label = "Global.Droid", MainLauncher = true, Icon = "@drawable/icon", Theme = "@style/Theme.AppCompat")]
    public class MainActivity : ActionBarActivity
    {        
        private FrameLayout mFragmentContainer;
        private SupportFragment mCurrentFragment;
 
        private MainPageFragment mainPage;
        private TestFrag testFrag;
        
        private Stack<SupportFragment> fragStack;
 
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);
            SetContentView (Resource.Layout.Main);
 
            testFrag = new TestFrag();
            mainPage = new MainPageFragment(); 
            fragStack = new Stack<SupportFragment>();
                        
            mFragmentContainer = FindViewById<FrameLayout>(Resource.Id.fragmentContainer);
            var trans = SupportFragmentManager.BeginTransaction();
            trans.Add(Resource.Id.fragmentContainer, mainPage, "Main Page");
            trans.Add(Resource.Id.fragmentContainer, testFrag, "Test Page");
            trans.Hide(testFrag);
            trans.Commit();
            
            }
 
        public void ShowFragment(SupportFragment fragment)
        {
            var trans = SupportFragmentManager.BeginTransaction();
            fragment.View.BringToFront();
            mainPage.View.BringToFront();
 
            trans.AddToBackStack(null);
            fragStack.Push(mainPage);
 
            trans.Hide(mainPage);
            trans.Show(fragment);
 
            trans.Commit();
        }       
    }  
}
код фрагмента с кнопками
(тут мы может обрабатывать event, происходящие в этом фрагменте. отловить тык по нужной кнопке. но тут мы не может реализовать переключение фрагмента, т.к. не можем наследовать фрагмент от ActionBarActivity)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class MainPageFragment : Android.Support.V4.App.Fragment
    {       
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
 
        }
 
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            View view = inflater.Inflate(Resource.Layout.GridLayout, container, false);
 
            ImageView imageM = view.FindViewById<ImageView>(Resource.Id.imageViewF);
            AnimationDrawable animationM = (AnimationDrawable)imageM.Drawable;
 
            Button startB = view.FindViewById<Button>(Resource.Id.buttonStart);
            Button stopB = view.FindViewById<Button>(Resource.Id.buttonStop);
            Button testFragment = view.FindViewById<Button>(Resource.Id.buttonFragment);
                 
            startB.Click += delegate { animationM.Start(); };
            stopB.Click += delegate { animationM.Stop(); };
            
            return view;
        }
    }
я пытался сделать в mainactivity public метод для отображения конкретного фрагмента, но в результате получаю только null exception на фрагменте, который нужно показать.
как можно реализовать механизм, который позволял бы отлавливать в одном месте все события клика, либо как можно сделать доступной из всех фрагментов информацию обо всех фрагментах, и методы их переключения?
спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru