Merged PR 214768: Demo: Switched from using DemoActivity + DemoFragments to have an activity per demo
- `DemoActivity` is now abstract and got new `contentId` and `contentNeedsScrollableContainer` properties. Sets its own title and loads its content from demo layout file. - Demo requires `DemoActivity` as a demo class - Converted demo fragments to demo activities (subclassing from `DemoActivity`) - Renamed demo files: *Fragment.kt to *Activity.kt - Renamed demo files: fragment_*.xml to activity_*.xml - Some clean up and refactoring Related work items: #659039
This commit is contained in:
Родитель
d7a30b7acd
Коммит
425d996906
|
@ -9,24 +9,27 @@
|
|||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
|
||||
<activity
|
||||
android:name="com.microsoft.officeuifabricdemo.DemoListActivity"
|
||||
android:label="@string/app_title"
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
android:label="@string/app_title">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name="com.microsoft.officeuifabricdemo.DemoActivity"
|
||||
android:label="@string/title_demo_detail"
|
||||
android:parentActivityName="com.microsoft.officeuifabricdemo.DemoListActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value="com.microsoft.officeuifabricdemo.DemoListActivity" />
|
||||
</activity>
|
||||
|
||||
<!-- Demo activities -->
|
||||
<activity android:name="com.microsoft.officeuifabricdemo.demos.AvatarViewActivity" />
|
||||
<activity android:name="com.microsoft.officeuifabricdemo.demos.CalendarViewActivity" />
|
||||
<activity android:name="com.microsoft.officeuifabricdemo.demos.DateTimePickerDialogActivity" />
|
||||
<activity android:name="com.microsoft.officeuifabricdemo.demos.PeoplePickerViewActivity" />
|
||||
<activity android:name="com.microsoft.officeuifabricdemo.demos.PersonaChipViewActivity" />
|
||||
<activity android:name="com.microsoft.officeuifabricdemo.demos.PersonaListViewActivity" />
|
||||
<activity android:name="com.microsoft.officeuifabricdemo.demos.PersonaViewActivity" />
|
||||
<activity android:name="com.microsoft.officeuifabricdemo.demos.TemplateViewActivity" />
|
||||
<activity android:name="com.microsoft.officeuifabricdemo.demos.TypographyActivity" />
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
|
@ -1,74 +1,53 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.support.v4.app.Fragment
|
||||
import android.support.annotation.LayoutRes
|
||||
import android.support.v7.app.AppCompatActivity
|
||||
import android.view.MenuItem
|
||||
import com.jakewharton.threetenabp.AndroidThreeTen
|
||||
import com.microsoft.officeuifabric.datetimepicker.OnDateTimePickedListener
|
||||
import com.microsoft.officeuifabricdemo.demos.DateTimePickerDialogFragment
|
||||
import kotlinx.android.synthetic.main.activity_demo_detail.*
|
||||
import org.threeten.bp.ZonedDateTime
|
||||
import java.util.*
|
||||
|
||||
class DemoActivity : AppCompatActivity(), OnDateTimePickedListener {
|
||||
abstract class DemoActivity : AppCompatActivity() {
|
||||
companion object {
|
||||
const val DEMO_ID = "demo_id"
|
||||
}
|
||||
|
||||
protected abstract val contentLayoutId: Int
|
||||
@LayoutRes get
|
||||
protected open val contentNeedsScrollableContainer: Boolean
|
||||
get() = true
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
AndroidThreeTen.init(this)
|
||||
setContentView(R.layout.activity_demo_detail)
|
||||
setSupportActionBar(detail_toolbar)
|
||||
|
||||
setContentView(R.layout.activity_demo_detail)
|
||||
|
||||
setSupportActionBar(detail_toolbar)
|
||||
// Show the Up button in the action bar.
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
|
||||
// savedInstanceState is non-null when there is fragment state
|
||||
// saved from previous configurations of this activity
|
||||
// (e.g. when rotating the screen from portrait to landscape).
|
||||
// In this case, the fragment will automatically be re-added
|
||||
// to its container so we don't need to manually add it.
|
||||
// For more information, see the Fragments API guide at:
|
||||
//
|
||||
// http://developer.android.com/guide/components/fragments.html
|
||||
//
|
||||
if (savedInstanceState == null) {
|
||||
// Create the detail fragment and add it to the activity using a fragment transaction.
|
||||
val demoID = intent.getSerializableExtra(DemoFragment.DEMO_ID) as UUID
|
||||
val demo = DEMOS.find { it.id == demoID }
|
||||
if (demo == null)
|
||||
return
|
||||
// Set demo title
|
||||
val demoID = intent.getSerializableExtra(DemoActivity.DEMO_ID) as UUID
|
||||
val demo = DEMOS.find { it.id == demoID }
|
||||
title = demo?.title
|
||||
|
||||
val fragment = Fragment.instantiate(this, demo.demoClass.java.name).apply {
|
||||
arguments = Bundle().apply {
|
||||
putSerializable(DemoFragment.DEMO_ID, demoID)
|
||||
}
|
||||
// Load content and place it in the requested container
|
||||
val container = if (contentNeedsScrollableContainer) demo_detail_scrollable_container else demo_detail_container
|
||||
layoutInflater.inflate(contentLayoutId, container, true)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
android.R.id.home -> {
|
||||
navigateUpTo(Intent(this, DemoListActivity::class.java))
|
||||
return true
|
||||
}
|
||||
|
||||
val isDemoScrollable = (fragment as? DemoFragment)?.needsScrollableContainer() ?: true
|
||||
|
||||
supportFragmentManager.beginTransaction()
|
||||
.add(if (isDemoScrollable) R.id.demo_detail_scrollable_container else R.id.demo_detail_container, fragment, demo.title)
|
||||
.commit()
|
||||
else -> return super.onOptionsItemSelected(item)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem) =
|
||||
when (item.itemId) {
|
||||
android.R.id.home -> {
|
||||
// This ID represents the Home or Up button. In the case of this
|
||||
// activity, the Up button is shown. For
|
||||
// more details, see the Navigation pattern on Android Design:
|
||||
//
|
||||
// http://developer.android.com/design/patterns/navigation.html#up-vs-back
|
||||
|
||||
navigateUpTo(Intent(this, DemoListActivity::class.java))
|
||||
true
|
||||
}
|
||||
else -> super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
override fun onDateTimePicked(dateTime: ZonedDateTime) {
|
||||
val dateTimePickerDialogFragment = supportFragmentManager.findFragmentByTag(DATE_TIME_PICKER_DIALOG) as? DateTimePickerDialogFragment
|
||||
dateTimePickerDialogFragment?.setDateTime(dateTime)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
package com.microsoft.officeuifabricdemo
|
||||
|
||||
import android.os.Bundle
|
||||
import android.support.v4.app.Fragment
|
||||
import kotlinx.android.synthetic.main.activity_demo_detail.*
|
||||
import java.util.*
|
||||
|
||||
open class DemoFragment : Fragment() {
|
||||
companion object {
|
||||
const val DEMO_ID = "demo_id"
|
||||
}
|
||||
|
||||
private var demo: Demo? = null
|
||||
|
||||
open fun needsScrollableContainer(): Boolean = true
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
arguments?.let {
|
||||
if (it.containsKey(DEMO_ID)) {
|
||||
val demoID = it.getSerializable(DEMO_ID) as UUID
|
||||
demo = DEMOS.find { it.id == demoID }
|
||||
activity?.title = demo?.title
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,62 +1,48 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.support.design.widget.Snackbar
|
||||
import android.support.v7.app.AppCompatActivity
|
||||
import android.support.v7.widget.RecyclerView
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import com.jakewharton.threetenabp.AndroidThreeTen
|
||||
import kotlinx.android.synthetic.main.activity_demo_list.*
|
||||
import kotlinx.android.synthetic.main.demo_list.*
|
||||
import kotlinx.android.synthetic.main.demo_list_content.view.*
|
||||
|
||||
/**
|
||||
* An activity representing a list of Demos. This activity
|
||||
* has different presentations for handset and tablet-size devices. On
|
||||
* handsets, the activity presents a list of items, which when touched,
|
||||
* lead to a [DemoActivity] representing
|
||||
* item details. On tablets, the activity presents the list of items and
|
||||
* item details side-by-side using two vertical panes.
|
||||
* This activity presents a list of [Demo]s, which when touched,
|
||||
* lead to a subclass of [DemoActivity] representing demo details.
|
||||
*/
|
||||
class DemoListActivity : AppCompatActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
AndroidThreeTen.init(this)
|
||||
|
||||
setContentView(R.layout.activity_demo_list)
|
||||
|
||||
setSupportActionBar(toolbar)
|
||||
toolbar.title = title
|
||||
|
||||
fab.setOnClickListener { view ->
|
||||
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
|
||||
.setAction("Action", null).show()
|
||||
}
|
||||
|
||||
setupRecyclerView(demo_list)
|
||||
demo_list.adapter = DemoListAdapter()
|
||||
|
||||
Initializer.init(application)
|
||||
}
|
||||
|
||||
private fun setupRecyclerView(recyclerView: RecyclerView) {
|
||||
recyclerView.adapter = DemoRecyclerViewAdapter(this)
|
||||
}
|
||||
|
||||
// DemoRecyclerViewAdapter
|
||||
|
||||
private class DemoRecyclerViewAdapter(val parentActivity: DemoListActivity) :
|
||||
RecyclerView.Adapter<DemoRecyclerViewAdapter.ViewHolder>() {
|
||||
|
||||
private val onClickListener: View.OnClickListener
|
||||
|
||||
init {
|
||||
onClickListener = View.OnClickListener { v ->
|
||||
val demo = v.tag as Demo
|
||||
val intent = Intent(v.context, DemoActivity::class.java)
|
||||
intent.putExtra(DemoFragment.DEMO_ID, demo.id)
|
||||
v.context.startActivity(intent)
|
||||
}
|
||||
private class DemoListAdapter : RecyclerView.Adapter<DemoListAdapter.ViewHolder>() {
|
||||
private val onClickListener = View.OnClickListener { view ->
|
||||
val demo = view.tag as Demo
|
||||
val intent = Intent(view.context, demo.demoClass.java)
|
||||
intent.putExtra(DemoActivity.DEMO_ID, demo.id)
|
||||
view.context.startActivity(intent)
|
||||
}
|
||||
|
||||
override fun getItemCount() = DEMOS.size
|
||||
|
@ -76,9 +62,7 @@ class DemoListActivity : AppCompatActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
// ViewHolder
|
||||
|
||||
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
|
||||
private class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
|
||||
val textView: TextView = view.id_text
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo
|
||||
|
||||
import android.support.v4.app.Fragment
|
||||
import com.microsoft.officeuifabricdemo.demos.*
|
||||
import java.util.*
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
const val AVATAR = "Avatar"
|
||||
const val AVATAR_VIEW = "AvatarView"
|
||||
const val CALENDAR_VIEW = "CalendarView"
|
||||
const val DATE_TIME_PICKER_DIALOG = "DateTimePickerDialog"
|
||||
const val PEOPLE_PICKER = "PeoplePicker"
|
||||
const val PERSONA = "Persona"
|
||||
const val PERSONA_CHIP = "PersonaChip"
|
||||
const val PEOPLE_PICKER_VIEW = "PeoplePickerView"
|
||||
const val PERSONA_CHIP_VIEW = "PersonaChipView"
|
||||
const val PERSONA_LIST_VIEW = "PersonaListView"
|
||||
const val PERSONA_VIEW = "PersonaView"
|
||||
const val TEMPLATE_VIEW = "TemplateView"
|
||||
const val TYPOGRAPHY = "Typography"
|
||||
|
||||
val DEMOS = arrayListOf(
|
||||
Demo(AVATAR, AvatarFragment::class),
|
||||
Demo(CALENDAR_VIEW, CalendarViewFragment::class),
|
||||
Demo(DATE_TIME_PICKER_DIALOG, DateTimePickerDialogFragment::class),
|
||||
Demo(PEOPLE_PICKER, PeoplePickerFragment::class),
|
||||
Demo(PERSONA, PersonaFragment::class),
|
||||
Demo(PERSONA_CHIP, PersonaChipFragment::class),
|
||||
Demo(PERSONA_LIST_VIEW, PersonaListViewFragment::class),
|
||||
Demo(TEMPLATE_VIEW, TemplateViewFragment::class),
|
||||
Demo(TYPOGRAPHY, TypographyFragment::class)
|
||||
Demo(AVATAR_VIEW, AvatarViewActivity::class),
|
||||
Demo(CALENDAR_VIEW, CalendarViewActivity::class),
|
||||
Demo(DATE_TIME_PICKER_DIALOG, DateTimePickerDialogActivity::class),
|
||||
Demo(PEOPLE_PICKER_VIEW, PeoplePickerViewActivity::class),
|
||||
Demo(PERSONA_CHIP_VIEW, PersonaChipViewActivity::class),
|
||||
Demo(PERSONA_LIST_VIEW, PersonaListViewActivity::class),
|
||||
Demo(PERSONA_VIEW, PersonaViewActivity::class),
|
||||
Demo(TEMPLATE_VIEW, TemplateViewActivity::class),
|
||||
Demo(TYPOGRAPHY, TypographyActivity::class)
|
||||
)
|
||||
|
||||
data class Demo(val title: String, val demoClass: KClass<out Fragment>) {
|
||||
data class Demo(val title: String, val demoClass: KClass<out DemoActivity>) {
|
||||
val id: UUID = UUID.randomUUID()
|
||||
}
|
||||
}
|
|
@ -5,26 +5,23 @@
|
|||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import android.widget.LinearLayout
|
||||
import com.bumptech.glide.Glide
|
||||
import com.microsoft.officeuifabric.persona.AvatarSize
|
||||
import com.microsoft.officeuifabric.persona.AvatarView
|
||||
import com.microsoft.officeuifabricdemo.DemoFragment
|
||||
import com.microsoft.officeuifabricdemo.DemoActivity
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import com.squareup.picasso.Picasso
|
||||
import kotlinx.android.synthetic.main.fragment_avatar.*
|
||||
import kotlinx.android.synthetic.main.activity_avatar_view.*
|
||||
|
||||
class AvatarFragment : DemoFragment() {
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
return inflater.inflate(R.layout.fragment_avatar, container, false)
|
||||
}
|
||||
class AvatarViewActivity : DemoActivity() {
|
||||
override val contentLayoutId: Int
|
||||
get() = R.layout.activity_avatar_view
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
// Avatar drawables with bitmap
|
||||
loadBitmapFromPicasso(avatar_example_picasso)
|
||||
|
@ -52,8 +49,7 @@ class AvatarFragment : DemoFragment() {
|
|||
}
|
||||
|
||||
private fun createNewAvatarFromCode() {
|
||||
val context = context ?: return
|
||||
val avatarView = AvatarView(context)
|
||||
val avatarView = AvatarView(this)
|
||||
avatarView.avatarSize = AvatarSize.XXLARGE
|
||||
avatarView.name = getString(R.string.persona_name_mauricio_august)
|
||||
avatarView.email = getString(R.string.persona_email_mauricio_august)
|
||||
|
@ -61,4 +57,4 @@ class AvatarFragment : DemoFragment() {
|
|||
avatarView.id = R.id.avatar_example_code
|
||||
avatar_layout.addView(avatarView)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.os.Bundle
|
||||
import com.microsoft.officeuifabric.calendar.OnDateSelectedListener
|
||||
import com.microsoft.officeuifabric.util.DateStringUtils
|
||||
import com.microsoft.officeuifabricdemo.DemoActivity
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import kotlinx.android.synthetic.main.activity_calendar_view.*
|
||||
import org.threeten.bp.ZonedDateTime
|
||||
|
||||
class CalendarViewActivity : DemoActivity() {
|
||||
override val contentLayoutId: Int
|
||||
get() = R.layout.activity_calendar_view
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
calendar_view.onDateSelectedListener = object : OnDateSelectedListener {
|
||||
override fun onDateSelected(date: ZonedDateTime) {
|
||||
example_date_title.text = DateStringUtils.formatDateWithWeekDay(this@CalendarViewActivity, date)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.microsoft.officeuifabric.calendar.OnDateSelectedListener
|
||||
import com.microsoft.officeuifabric.util.DateStringUtils
|
||||
import com.microsoft.officeuifabricdemo.DemoFragment
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import kotlinx.android.synthetic.main.fragment_calendar.view.*
|
||||
import org.threeten.bp.ZonedDateTime
|
||||
|
||||
class CalendarViewFragment : DemoFragment() {
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
val view = inflater.inflate(R.layout.fragment_calendar, container, false)
|
||||
val context = context ?: return view
|
||||
view.calendar_view.onDateSelectedListener = object : OnDateSelectedListener {
|
||||
override fun onDateSelected(date: ZonedDateTime) {
|
||||
view.example_date_title.text = DateStringUtils.formatDateWithWeekDay(context, date)
|
||||
}
|
||||
}
|
||||
return view
|
||||
}
|
||||
}
|
|
@ -5,19 +5,17 @@
|
|||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.microsoft.officeuifabric.datetimepicker.DateTimePickerDialog
|
||||
import com.microsoft.officeuifabric.datetimepicker.DatePickMode
|
||||
import com.microsoft.officeuifabric.datetimepicker.DateTimePickerDialog
|
||||
import com.microsoft.officeuifabric.datetimepicker.OnDateTimePickedListener
|
||||
import com.microsoft.officeuifabric.util.DateStringUtils
|
||||
import com.microsoft.officeuifabricdemo.DemoFragment
|
||||
import com.microsoft.officeuifabricdemo.DemoActivity
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import kotlinx.android.synthetic.main.fragment_date_time_picker_dialog.*
|
||||
import kotlinx.android.synthetic.main.activity_date_time_picker_dialog.*
|
||||
import org.threeten.bp.Duration
|
||||
import org.threeten.bp.ZonedDateTime
|
||||
|
||||
class DateTimePickerDialogFragment : DemoFragment() {
|
||||
class DateTimePickerDialogActivity : DemoActivity(), OnDateTimePickedListener {
|
||||
companion object {
|
||||
private const val TAG_DATE_TIME_PICKER = "dateTimePicker"
|
||||
private const val TAG_DATE_PICKER = "datePicker"
|
||||
|
@ -25,20 +23,14 @@ class DateTimePickerDialogFragment : DemoFragment() {
|
|||
private const val DIALOG_TAG = "dialogTag"
|
||||
}
|
||||
|
||||
override val contentLayoutId: Int
|
||||
get() = R.layout.activity_date_time_picker_dialog
|
||||
|
||||
private var selectedDateTime: ZonedDateTime? = null
|
||||
private var dialogTag: String? = null
|
||||
|
||||
fun setDateTime(dateTime: ZonedDateTime) {
|
||||
selectedDateTime = dateTime
|
||||
updateText()
|
||||
}
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
return inflater.inflate(R.layout.fragment_date_time_picker_dialog, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
savedInstanceState?.let {
|
||||
selectedDateTime = it.getSerializable(SELECTED_DATE_TIME) as? ZonedDateTime
|
||||
|
@ -53,7 +45,7 @@ class DateTimePickerDialogFragment : DemoFragment() {
|
|||
DateTimePickerDialog.Mode.DATE,
|
||||
DatePickMode.SINGLE
|
||||
)
|
||||
dialog.show(fragmentManager, dialogTag)
|
||||
dialog.show(supportFragmentManager, dialogTag)
|
||||
}
|
||||
|
||||
date_time_picker_date_selected_button.setOnClickListener {
|
||||
|
@ -64,7 +56,7 @@ class DateTimePickerDialogFragment : DemoFragment() {
|
|||
DateTimePickerDialog.Mode.DATE_TIME,
|
||||
DatePickMode.SINGLE
|
||||
)
|
||||
dialog.show(fragmentManager, dialogTag)
|
||||
dialog.show(supportFragmentManager, dialogTag)
|
||||
}
|
||||
|
||||
date_time_picker_time_selected_button.setOnClickListener {
|
||||
|
@ -75,7 +67,7 @@ class DateTimePickerDialogFragment : DemoFragment() {
|
|||
DateTimePickerDialog.Mode.TIME_DATE,
|
||||
DatePickMode.SINGLE
|
||||
)
|
||||
dialog.show(fragmentManager, dialogTag)
|
||||
dialog.show(supportFragmentManager, dialogTag)
|
||||
}
|
||||
|
||||
updateText()
|
||||
|
@ -87,15 +79,19 @@ class DateTimePickerDialogFragment : DemoFragment() {
|
|||
outState.putString(DIALOG_TAG, dialogTag)
|
||||
}
|
||||
|
||||
override fun onDateTimePicked(dateTime: ZonedDateTime) {
|
||||
selectedDateTime = dateTime
|
||||
updateText()
|
||||
}
|
||||
|
||||
private fun getLastDateTime() = selectedDateTime ?: ZonedDateTime.now()
|
||||
|
||||
private fun updateText() {
|
||||
val context = context ?: return
|
||||
val selectDateTime = selectedDateTime ?: return
|
||||
val dialogTag = dialogTag ?: return
|
||||
if (dialogTag == TAG_DATE_PICKER)
|
||||
date_text_view.text = DateStringUtils.formatDateWithWeekDay(context, selectDateTime)
|
||||
date_text_view.text = DateStringUtils.formatDateWithWeekDay(this, selectDateTime)
|
||||
else
|
||||
date_text_view.text = DateStringUtils.formatFullDateTime(context, selectDateTime)
|
||||
date_text_view.text = DateStringUtils.formatFullDateTime(this, selectDateTime)
|
||||
}
|
||||
}
|
|
@ -1,33 +1,33 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.app.AlertDialog
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.LinearLayout
|
||||
import com.microsoft.officeuifabric.peoplepicker.PeoplePickerPersonaChipClickStyle
|
||||
import com.microsoft.officeuifabric.peoplepicker.PeoplePickerView
|
||||
import com.microsoft.officeuifabric.persona.IPersona
|
||||
import com.microsoft.officeuifabricdemo.DemoFragment
|
||||
import com.microsoft.officeuifabricdemo.DemoActivity
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import com.microsoft.officeuifabricdemo.util.createPersonaList
|
||||
import kotlinx.android.synthetic.main.fragment_people_picker.*
|
||||
import kotlinx.android.synthetic.main.activity_people_picker_view.*
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
class PeoplePickerFragment : DemoFragment() {
|
||||
class PeoplePickerViewActivity : DemoActivity() {
|
||||
override val contentLayoutId: Int
|
||||
get() = R.layout.activity_people_picker_view
|
||||
|
||||
private lateinit var samplePersonas: ArrayList<IPersona>
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
samplePersonas = createPersonaList(context)
|
||||
return inflater.inflate(R.layout.fragment_people_picker, container, false)
|
||||
}
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val context = context ?: return
|
||||
samplePersonas = createPersonaList(this)
|
||||
|
||||
// Use attributes to set personaChipClickStyle and label
|
||||
|
||||
|
@ -74,8 +74,7 @@ class PeoplePickerFragment : DemoFragment() {
|
|||
personaSuggestionsListener: PeoplePickerView.PersonaSuggestionsListener? = null,
|
||||
pickedPersonasChangeListener: PeoplePickerView.PickedPersonasChangeListener? = null
|
||||
) {
|
||||
val context = context ?: return
|
||||
val peoplePickerView = PeoplePickerView(context)
|
||||
val peoplePickerView = PeoplePickerView(this)
|
||||
peoplePickerView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
with(peoplePickerView) {
|
||||
label = labelText
|
||||
|
@ -100,7 +99,7 @@ class PeoplePickerFragment : DemoFragment() {
|
|||
}
|
||||
|
||||
private fun showPickedPersonaDialog(title: String, persona: IPersona) {
|
||||
val dialog = AlertDialog.Builder(context)
|
||||
val dialog = AlertDialog.Builder(this)
|
||||
dialog.setTitle(title)
|
||||
dialog.setMessage(if (!persona.name.isEmpty()) persona.name else persona.email)
|
||||
dialog.show()
|
|
@ -1,69 +0,0 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.support.design.widget.Snackbar
|
||||
import android.support.v4.content.ContextCompat
|
||||
import android.support.v4.widget.TextViewCompat
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import com.microsoft.officeuifabric.persona.PersonaChipView
|
||||
import com.microsoft.officeuifabricdemo.DemoFragment
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import kotlinx.android.synthetic.main.fragment_persona_chip.*
|
||||
|
||||
class PersonaChipFragment : DemoFragment() {
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
return inflater.inflate(R.layout.fragment_persona_chip, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
val context = context ?: return
|
||||
createDisabledPersonaChip(context)
|
||||
persona_chip_example_basic.listener = setOnClickExample(view)
|
||||
persona_chip_example_no_icon.listener = setOnClickExample(view)
|
||||
persona_chip_example_error.listener = setOnClickExample(view)
|
||||
persona_chip_example_error.hasError = true
|
||||
}
|
||||
|
||||
private fun createDisabledPersonaChip(context: Context) {
|
||||
val textView = TextView(context)
|
||||
textView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
textView.text = getString(R.string.persona_chip_example_disabled)
|
||||
TextViewCompat.setTextAppearance(textView, R.style.TextAppearance_UIFabric_Body2)
|
||||
textView.setTextColor(ContextCompat.getColor(context, R.color.uifabric_black))
|
||||
persona_chip_layout.addView(textView)
|
||||
|
||||
val personaChipView = PersonaChipView(context)
|
||||
personaChipView.isEnabled = false
|
||||
personaChipView.name = resources.getString(R.string.persona_name_kat_larsson)
|
||||
personaChipView.email = resources.getString(R.string.persona_email_kat_larsson)
|
||||
personaChipView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
persona_chip_layout.addView(personaChipView)
|
||||
}
|
||||
|
||||
private fun setOnClickExample(view: View): PersonaChipView.Listener {
|
||||
return object : PersonaChipView.Listener {
|
||||
override fun onSelected(selected: Boolean) {
|
||||
// no op
|
||||
}
|
||||
|
||||
override fun onClicked() {
|
||||
val snackbar = Snackbar.make(
|
||||
view,
|
||||
getString(R.string.persona_chip_example_click),
|
||||
Snackbar.LENGTH_SHORT
|
||||
)
|
||||
snackbar.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.os.Bundle
|
||||
import android.support.design.widget.Snackbar
|
||||
import android.support.v4.content.ContextCompat
|
||||
import android.support.v4.widget.TextViewCompat
|
||||
import android.view.ViewGroup
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import com.microsoft.officeuifabric.persona.PersonaChipView
|
||||
import com.microsoft.officeuifabricdemo.DemoActivity
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import kotlinx.android.synthetic.main.activity_demo_detail.*
|
||||
import kotlinx.android.synthetic.main.activity_persona_chip_view.*
|
||||
|
||||
class PersonaChipViewActivity : DemoActivity() {
|
||||
override val contentLayoutId: Int
|
||||
get() = R.layout.activity_persona_chip_view
|
||||
|
||||
private val personaChipViewListener = object : PersonaChipView.Listener {
|
||||
override fun onSelected(selected: Boolean) { }
|
||||
|
||||
override fun onClicked() {
|
||||
Snackbar.make(root_view, getString(R.string.persona_chip_example_click), Snackbar.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
createDisabledPersonaChip()
|
||||
persona_chip_example_basic.listener = personaChipViewListener
|
||||
persona_chip_example_no_icon.listener = personaChipViewListener
|
||||
persona_chip_example_error.listener = personaChipViewListener
|
||||
persona_chip_example_error.hasError = true
|
||||
}
|
||||
|
||||
private fun createDisabledPersonaChip() {
|
||||
val textView = TextView(this)
|
||||
textView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
textView.text = getString(R.string.persona_chip_example_disabled)
|
||||
TextViewCompat.setTextAppearance(textView, R.style.TextAppearance_UIFabric_Body2)
|
||||
textView.setTextColor(ContextCompat.getColor(this, R.color.uifabric_black))
|
||||
persona_chip_layout.addView(textView)
|
||||
|
||||
val personaChipView = PersonaChipView(this)
|
||||
personaChipView.isEnabled = false
|
||||
personaChipView.name = resources.getString(R.string.persona_name_kat_larsson)
|
||||
personaChipView.email = resources.getString(R.string.persona_email_kat_larsson)
|
||||
personaChipView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
persona_chip_layout.addView(personaChipView)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.os.Bundle
|
||||
import android.support.design.widget.Snackbar
|
||||
import com.microsoft.officeuifabric.persona.IPersona
|
||||
import com.microsoft.officeuifabric.persona.PersonaListAdapter
|
||||
import com.microsoft.officeuifabricdemo.DemoActivity
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import com.microsoft.officeuifabricdemo.util.createPersonaList
|
||||
import kotlinx.android.synthetic.main.activity_demo_detail.*
|
||||
import kotlinx.android.synthetic.main.activity_persona_list_view.*
|
||||
|
||||
class PersonaListViewActivity : DemoActivity() {
|
||||
override val contentLayoutId: Int
|
||||
get() = R.layout.activity_persona_list_view
|
||||
override val contentNeedsScrollableContainer: Boolean
|
||||
get() = false
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
persona_list_view_example.personas = createPersonaList(this)
|
||||
persona_list_view_example.onItemClicked = object : PersonaListAdapter.Callback {
|
||||
override fun onItemClicked(persona: IPersona) {
|
||||
Snackbar.make(
|
||||
root_view,
|
||||
"You clicked on the cell for ${persona.name}, ${persona.subtitle}",
|
||||
Snackbar.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.os.Bundle
|
||||
import android.support.design.widget.Snackbar
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.microsoft.officeuifabric.persona.IPersona
|
||||
import com.microsoft.officeuifabric.persona.PersonaListAdapter
|
||||
import com.microsoft.officeuifabricdemo.DemoFragment
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import com.microsoft.officeuifabricdemo.util.createPersonaList
|
||||
import kotlinx.android.synthetic.main.fragment_persona_list_view.*
|
||||
|
||||
class PersonaListViewFragment : DemoFragment() {
|
||||
override fun needsScrollableContainer(): Boolean = false
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
return inflater.inflate(R.layout.fragment_persona_list_view, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
persona_list_view_example.personas = createPersonaList(context)
|
||||
persona_list_view_example.onItemClicked = object : PersonaListAdapter.Callback {
|
||||
override fun onItemClicked(persona: IPersona) {
|
||||
val snackbar = Snackbar.make(
|
||||
view,
|
||||
"You clicked on the cell for ${persona.name}, ${persona.subtitle}",
|
||||
Snackbar.LENGTH_SHORT
|
||||
)
|
||||
snackbar.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5,31 +5,27 @@
|
|||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.LinearLayout
|
||||
import com.microsoft.officeuifabric.persona.AvatarSize
|
||||
import com.microsoft.officeuifabric.persona.PersonaView
|
||||
import com.microsoft.officeuifabricdemo.DemoFragment
|
||||
import com.microsoft.officeuifabricdemo.DemoActivity
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import kotlinx.android.synthetic.main.fragment_persona.*
|
||||
import kotlinx.android.synthetic.main.activity_persona_view.*
|
||||
|
||||
class PersonaFragment: DemoFragment() {
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
return inflater.inflate(R.layout.fragment_persona, container, false)
|
||||
}
|
||||
class PersonaViewActivity : DemoActivity() {
|
||||
override val contentLayoutId: Int
|
||||
get() = R.layout.activity_persona_view
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
// Add Persona programmatically
|
||||
createNewPersonaFromCode()
|
||||
}
|
||||
|
||||
private fun createNewPersonaFromCode() {
|
||||
val context = context ?: return
|
||||
val personaView = PersonaView(context)
|
||||
val personaView = PersonaView(this)
|
||||
personaView.avatarSize = AvatarSize.SMALL
|
||||
personaView.name = resources.getString(R.string.persona_name_mauricio_august)
|
||||
personaView.email = resources.getString(R.string.persona_email_mauricio_august)
|
|
@ -1,6 +1,6 @@
|
|||
//
|
||||
// Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
|
@ -12,58 +12,55 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import com.microsoft.officeuifabricdemo.DemoFragment
|
||||
import com.microsoft.officeuifabricdemo.DemoActivity
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import com.microsoft.officeuifabricdemo.demos.views.Cell
|
||||
import com.microsoft.officeuifabricdemo.demos.views.CellOrientation
|
||||
import kotlinx.android.synthetic.main.fragment_templateview.*
|
||||
import kotlinx.android.synthetic.main.activity_template_view.*
|
||||
import kotlinx.android.synthetic.main.template_cell_vertical.view.*
|
||||
|
||||
class TemplateViewFragment : DemoFragment() {
|
||||
class TemplateViewActivity : DemoActivity() {
|
||||
companion object {
|
||||
const val LIST_ITEM_COUNT = 1000
|
||||
}
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
return inflater.inflate(R.layout.fragment_templateview, container, false)
|
||||
}
|
||||
override val contentLayoutId: Int
|
||||
get() = R.layout.activity_template_view
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
horizontal_cell.setOnClickListener { onCellClicked(it as Cell) }
|
||||
vertical_cell.setOnClickListener { onCellClicked(it as Cell) }
|
||||
|
||||
template_list_view.adapter = TemplateListViewAdapter()
|
||||
template_list_view.layoutManager = LinearLayoutManager(context)
|
||||
template_list_view.layoutManager = LinearLayoutManager(this)
|
||||
template_list_view.setHasFixedSize(true)
|
||||
|
||||
regular_list_view.adapter = RegularListViewAdapter()
|
||||
regular_list_view.layoutManager = LinearLayoutManager(context)
|
||||
regular_list_view.layoutManager = LinearLayoutManager(this)
|
||||
regular_list_view.setHasFixedSize(true)
|
||||
|
||||
calculate_cells_button.setOnClickListener {
|
||||
val context = context ?: return@setOnClickListener
|
||||
val t = measureAndLayoutViews(createView = {
|
||||
val cell = Cell(context)
|
||||
val cell = Cell(this)
|
||||
cell.orientation = CellOrientation.VERTICAL
|
||||
return@measureAndLayoutViews cell
|
||||
})
|
||||
println("Cell.M&L: $t")
|
||||
calculate_cells_button.text = context.getString(R.string.calculate_cells) + " = $t ms"
|
||||
calculate_cells_button.text = getString(R.string.calculate_cells) + " = $t ms"
|
||||
}
|
||||
|
||||
calculate_layouts_button.setOnClickListener {
|
||||
val context = context ?: return@setOnClickListener
|
||||
val t = measureAndLayoutViews(createView = {
|
||||
// Emulation of Cell code without extra ViewGroup (Cell itself)
|
||||
val cell = LayoutInflater.from(context).inflate(R.layout.template_cell_vertical, null)
|
||||
val cell = layoutInflater.inflate(R.layout.template_cell_vertical, null)
|
||||
/*val titleView = */cell.findViewById(R.id.cell_title) as TextView
|
||||
/*val descriptionView = */cell.findViewById(R.id.cell_description) as TextView
|
||||
return@measureAndLayoutViews cell
|
||||
})
|
||||
println("Layout.M&L: $t")
|
||||
calculate_layouts_button.text = context.getString(R.string.calculate_layouts) + " = $t ms"
|
||||
calculate_layouts_button.text = getString(R.string.calculate_layouts) + " = $t ms"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.os.Bundle
|
||||
import android.support.v4.widget.TextViewCompat
|
||||
import com.microsoft.officeuifabricdemo.DemoActivity
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import kotlinx.android.synthetic.main.activity_typography.*
|
||||
|
||||
class TypographyActivity : DemoActivity() {
|
||||
override val contentLayoutId: Int
|
||||
get() = R.layout.activity_typography
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
TextViewCompat.setTextAppearance(typography_example_body_2, R.style.TextAppearance_UIFabric_Body2)
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos
|
||||
|
||||
import android.os.Bundle
|
||||
import android.support.v4.widget.TextViewCompat
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.microsoft.officeuifabricdemo.DemoFragment
|
||||
import com.microsoft.officeuifabricdemo.R
|
||||
import kotlinx.android.synthetic.main.fragment_typography.*
|
||||
|
||||
class TypographyFragment : DemoFragment() {
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
return inflater.inflate(R.layout.fragment_typography, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
TextViewCompat.setTextAppearance(typography_example_body_2, R.style.TextAppearance_UIFabric_Body2)
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
//
|
||||
// Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
/**
|
||||
* Copyright © 2018 Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
package com.microsoft.officeuifabricdemo.demos.views
|
||||
|
||||
|
|
|
@ -31,12 +31,4 @@
|
|||
<include layout="@layout/demo_list" />
|
||||
</FrameLayout>
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/fab"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
app:srcCompat="@android:drawable/ic_dialog_info" />
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
|
@ -1,11 +1,6 @@
|
|||
<resources>
|
||||
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="Theme.UIFabric">
|
||||
<!-- Customize your theme here. -->
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.NoActionBar">
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowNoTitle">true</item>
|
||||
</style>
|
||||
|
|
Загрузка…
Ссылка в новой задаче