Hello,
I'm very new to fragments and how to use them.
My problem is that the fragment will show, however, it is not possible to interact with it. What am I doing wrong? Please help!
Here is my code:
Activity Code C#:
Fragment 1 in C#:
Xaml code:
I'm using Visual studio 2017 and Xamarin Android
Thanks
I'm very new to fragments and how to use them.
My problem is that the fragment will show, however, it is not possible to interact with it. What am I doing wrong? Please help!
Here is my code:
Activity Code C#:
Code:
[Activity(Label = "InventarActivity", Theme = "@style/AppTheme")]
public class TabActivity : AppCompatActivity
{
private DrawerLayout mDrawerLayout;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
//Toolbar
SupportToolbar toolbar = FindViewById<SupportToolbar>(Resource.Id.toolBar);
SetSupportActionBar(toolbar);
//ActionBar
SupportActionBar actionBar = SupportActionBar;
actionBar.SetHomeAsUpIndicator(Resource.Drawable.ic_menu);
actionBar.SetDisplayHomeAsUpEnabled(true);
//Drawer
mDrawerLayout = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
NavigationView navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
if(navigationView != null)
{
setUpDrawerContent(navigationView);
}
//Tabs
TabLayout tabs = FindViewById<TabLayout>(Resource.Id.tabs);
ViewPager viewPager = FindViewById<ViewPager>(Resource.Id.viewpager);
setUpViewPager(viewPager);
tabs.SetupWithViewPager(viewPager);
};
}
// What Actually sets my tabs
private void setUpViewPager(ViewPager viewPager)
{
//====================================
//SET THE FRAGMENTS HERE.
//====================================
TabAdapter adapter = new TabAdapter(SupportFragmentManager);
adapter.AddFragment(new Fragment1(), "Inventar");
adapter.AddFragment(new Fragment2(), "Onskeliste");
viewPager.Adapter = adapter;
}
public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
//Checks if the drawer is opened all the way up
case Android.Resource.Id.Home:
mDrawerLayout.OpenDrawer((int)GravityFlags.Left);
return true;
default:
return base.OnOptionsItemSelected(item);
}
}
private void setUpDrawerContent(NavigationView navigationView)
{
navigationView.NavigationItemSelected += (object sender, NavigationView.NavigationItemSelectedEventArgs e) =>
{
e.MenuItem.SetChecked(true);
mDrawerLayout.CloseDrawers();
};
}
//===================================
// Creating a tab adapter which inherrit from a fragment adaper, is used to adapt the viewpager and tabs together
//===================================
public class TabAdapter : FragmentPagerAdapter
{
public List<SupportFragment> Fragments { get; set; }
public List<string> FragmentNames { get; set; }
public TabAdapter (SupportoFragmentManager sfm) : base (sfm)
{
Fragments = new List<SupportFragment>();
FragmentNames = new List<string>();
}
public void AddFragment(SupportFragment fragment, string name)
{
Fragments.Add(fragment);
FragmentNames.Add(name);
}
public override int Count
{
get
{
return Fragments.Count;
}
}
//Gets the item of the fragemnt at the specific possition
public override SupportFragment GetItem(int position)
{
return Fragments[position];
}
//Sets the title of the fragment
public override ICharSequence GetPageTitleFormatted(int position)
{
return new Java.Lang.String(FragmentNames[position]);
}
}
}
Fragment 1 in C#:
Code:
public class Fragment1 : SupportFragment
{
public override void OnInflate(Activity activity, IAttributeSet attrs, Bundle savedInstanceState)
{
base.OnInflate(activity, attrs, savedInstanceState);
}
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
//Inflates the view under the tabs
View view = inflater.Inflate(Resource.Layout.Inventory, container, false);
return view;
}
}
Xaml code:
XML:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/scroll2"
android:padding="16dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FBC855">
<RelativeLayout
android:id="@+id/activity_my_cellar_page"
android:padding="16dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="true">
<ImageView
android:layout_below="@+id/toolbar2"
android:id="@+id/icon2"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@drawable/oel"
android:layout_width="200dp"
android:layout_height="200dp" />
<LinearLayout
android:layout_below="@+id/icon2"
android:id="@+id/mycellar_inventory"
android:gravity="center"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_width="100dp"
android:layout_height="1dp"
android:background="#6C2334"
android:layout_margin="5dp" />
<TextView
android:padding="25dp"
android:text="Inventory"
android:textColor="#ffffff"
android:textSize="25dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<View
android:layout_width="100dp"
android:layout_height="1dp"
android:background="#6C2334"
android:layout_margin="5dp" />
</LinearLayout>
<android.support.design.widget.TextInputLayout
android:layout_below="@+id/mycellar_inventory"
android:id="@+id/signup_beername"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/beername"
android:hint="Enter the beer name"
android:inputType="textCapWords"
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_below="@+id/signup_beername"
android:id="@+id/signup_beertype"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/beertype"
android:hint="Enter the beer type"
android:inputType="textCapWords"
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_below="@+id/signup_beertype"
android:id="@+id/signup_alcohol"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/alcohol"
android:hint="Enter the alcohol percent"
android:inputType="textCapWords"
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_below="@+id/signup_alcohol"
android:id="@+id/signup_color"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/color"
android:hint="Enter the color"
android:inputType="textCapWords"
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_below="@+id/signup_color"
android:id="@+id/signup_number"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/number"
android:hint="Enter the amount of beer"
android:inputType="textCapWords"
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
<LinearLayout
android:layout_below="@+id/signup_number"
android:id="@+id/registration"
android:gravity="center"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/Btn_lagre"
android:text="Lagre"
android:background="#6C2334"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="50dp"
android:layout_height="35dp" />
<Button
android:id="@+id/Btn_update"
android:text="Update"
android:background="#6C2334"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="50dp"
android:layout_height="35dp" />
<Button
android:id="@+id/Btn_slett"
android:text="Slett"
android:background="#6C2334"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="50dp"
android:layout_height="35dp" />
</LinearLayout>
<ListView
android:id="@+id/list_data"
android:layout_below="@+id/registration"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ProgressBar
android:layout_below="@+id/list_data"
android:id="@+id/circularProgress"
android:visibility="invisible"
android:layout_centerInParent="true"
android:theme="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.AppCompat.ProgressBar" />
<LinearLayout
android:layout_below="@+id/circularProgress"
android:id="@+id/mycellar_inventory3"
android:gravity="center"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_width="50dp"
android:layout_height="1dp"
android:background="#6C2334"
android:layout_margin="5dp" />
<Button
android:id="@+id/Btn_inventartilbake"
android:text="Tilbake"
android:background="#6C2334"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="150dp"
android:layout_height="50dp" />
<View
android:layout_width="50dp"
android:layout_height="1dp"
android:background="#6C2334"
android:layout_margin="5dp" />
</LinearLayout>
</RelativeLayout>
</ScrollView>
I'm using Visual studio 2017 and Xamarin Android
Thanks