Skip to content

Commit

Permalink
Fix landscape mode
Browse files Browse the repository at this point in the history
  • Loading branch information
gonzalonm committed Sep 29, 2016
1 parent bfb3422 commit f89ae06
Show file tree
Hide file tree
Showing 14 changed files with 227 additions and 185 deletions.
55 changes: 0 additions & 55 deletions ActionBarViewPager/HelloSwipeViewWithTabs/Activity1.cs

This file was deleted.

49 changes: 49 additions & 0 deletions ActionBarViewPager/HelloSwipeViewWithTabs/CustomPagerAdapter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
using System;
using Android.Content;
using Android.Runtime;
using Android.Support.V4.App;
using Android.Views;
using Android.Widget;
using Java.Lang;

namespace HelloSwipeViewWithTabs
{
public class CustomPagerAdapter : FragmentPagerAdapter
{
const int PAGE_COUNT = 2;
private string[] tabTitles = { "Tab1", "Tab2" };
readonly Context context;

public CustomPagerAdapter(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
{
}

public CustomPagerAdapter(Context context, FragmentManager fm) : base(fm)
{
this.context = context;
}

public override int Count {
get { return PAGE_COUNT; }
}

public override Fragment GetItem(int position)
{
return PageFragment.newInstance(position + 1);
}

public override ICharSequence GetPageTitleFormatted(int position)
{
// Generate title based on item position
return CharSequence.ArrayFromStringArray(tabTitles)[position];
}

public View GetTabView(int position)
{
// Given you have a custom layout in `res/layout/custom_tab.xml` with a TextView
var tv = (TextView) LayoutInflater.From(context).Inflate(Resource.Layout.custom_tab, null);
tv.Text = tabTitles[position];
return tv;
}
}
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@
<AndroidApplication>true</AndroidApplication>
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
<TargetFrameworkVersion>v4.0.3</TargetFrameworkVersion>
<TargetFrameworkVersion>v7.0</TargetFrameworkVersion>
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<AndroidUseLatestPlatformSdk>False</AndroidUseLatestPlatformSdk>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand Down Expand Up @@ -42,27 +45,44 @@
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Xml" />
<Reference Include="Xamarin.Android.Support.Animated.Vector.Drawable, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.Animated.Vector.Drawable.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Xamarin.Android.Support.Design, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Xamarin.Android.Support.Design.23.4.0.1\lib\MonoAndroid43\Xamarin.Android.Support.Design.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Xamarin.Android.Support.v4">
<HintPath>..\packages\Xamarin.Android.Support.v4.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Android.Support.v7.AppCompat, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Xamarin.Android.Support.v7.AppCompat.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Xamarin.Android.Support.v7.RecyclerView, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Xamarin.Android.Support.v7.RecyclerView.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.RecyclerView.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Xamarin.Android.Support.Vector.Drawable, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Xamarin.Android.Support.Vector.Drawable.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.Vector.Drawable.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Activity1.cs" />
<Compile Include="GenericFragmentPagerAdaptor.cs" />
<Compile Include="GenericViewPagerFragment.cs" />
<Compile Include="CustomPagerAdapter.cs" />
<Compile Include="MainActivity.cs" />
<Compile Include="PageFragment.cs" />
<Compile Include="Resources\Resource.Designer.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\AboutResources.txt" />
<None Include="Assets\AboutAssets.txt" />
<AndroidResource Include="Resources\layout\tab.axml">
<SubType>AndroidResource</SubType>
</AndroidResource>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\layout\Main.axml" />
<AndroidResource Include="Resources\layout\fragment_page.axml">
<SubType>Designer</SubType>
</AndroidResource>
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\values\Strings.xml" />
Expand All @@ -71,9 +91,22 @@
<AndroidResource Include="Resources\drawable\Icon.png" />
</ItemGroup>
<ItemGroup>
<Content Include="Properties\AndroidManifest.xml" />
<Content Include="Properties\AndroidManifest.xml">
<SubType>Designer</SubType>
</Content>
<AndroidResource Include="Resources\layout\main.xml">
<SubType>Designer</SubType>
</AndroidResource>
<AndroidResource Include="Resources\layout\custom_tab.xml" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
<Import Project="..\packages\Xamarin.Android.Support.Vector.Drawable.23.4.0.1\build\Xamarin.Android.Support.Vector.Drawable.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Vector.Drawable.23.4.0.1\build\Xamarin.Android.Support.Vector.Drawable.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Xamarin.Android.Support.Vector.Drawable.23.4.0.1\build\Xamarin.Android.Support.Vector.Drawable.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Vector.Drawable.23.4.0.1\build\Xamarin.Android.Support.Vector.Drawable.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
Expand Down
46 changes: 46 additions & 0 deletions ActionBarViewPager/HelloSwipeViewWithTabs/MainActivity.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using Android.App;
using Android.OS;
using Android.Support.V4.View;
using Android.Support.V4.App;
using Android.Support.Design.Widget;
using Android.Support.V7.App;
using Android.Support.V7.Widget;

namespace HelloSwipeViewWithTabs
{
[Activity(Label = "HelloSwipeViewWithTabs", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : AppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);

// Set our view from the "main" layout resource
SetContentView(Resource.Layout.main);

// Find views
var pager = FindViewById<ViewPager>(Resource.Id.pager);
var tabLayout = FindViewById<TabLayout>(Resource.Id.sliding_tabs);
var adapter = new CustomPagerAdapter(this, SupportFragmentManager);
var toolbar = FindViewById<Toolbar>(Resource.Id.my_toolbar);

// Setup Toolbar
SetSupportActionBar(toolbar);
SupportActionBar.Title = "HelloSwipeViewWithTabs";

// Set adapter to view pager
pager.Adapter = adapter;

// Setup tablayout with view pager
tabLayout.SetupWithViewPager(pager);

// Iterate over all tabs and set the custom view
for (int i = 0; i < tabLayout.TabCount; i++)
{
TabLayout.Tab tab = tabLayout.GetTabAt(i);
tab.SetCustomView(adapter.GetTabView(i));
}
}
}
}

38 changes: 38 additions & 0 deletions ActionBarViewPager/HelloSwipeViewWithTabs/PageFragment.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
using System;
using Android.OS;
using Android.Support.V4.App;
using Android.Views;
using Android.Widget;
using Java.Lang;

namespace HelloSwipeViewWithTabs
{
public class PageFragment : Fragment
{
const string ARG_PAGE = "ARG_PAGE";
private int mPage;

public static PageFragment newInstance(int page)
{
var args = new Bundle();
args.PutInt(ARG_PAGE, page);
var fragment = new PageFragment();
fragment.Arguments = args;
return fragment;
}

public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
mPage = Arguments.GetInt(ARG_PAGE);
}

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var view = inflater.Inflate(Resource.Layout.fragment_page, container, false);
var textView = (TextView) view;
textView.Text = "Fragment #" + mPage;
return view;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="15" />
<application></application>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" package="com.xamarin.samples.swipetabs" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="24" />
<application android:label="Hello SwipeView with Tabs" android:icon="@drawable/Icon" android:theme="@style/Theme.AppCompat.Light.NoActionBar"></application>
</manifest>
Loading

0 comments on commit f89ae06

Please sign in to comment.