improved tablet ui
This commit is contained in:
parent
5514c43094
commit
87f2e604f4
|
@ -172,7 +172,7 @@ dependencies {
|
|||
compile "com.github.mariotaku.CommonsLibrary:text:$mariotaku_commons_library_version"
|
||||
compile "com.github.mariotaku.CommonsLibrary:text-kotlin:$mariotaku_commons_library_version"
|
||||
compile 'com.github.mariotaku:KPreferences:0.9.5'
|
||||
compile 'com.github.mariotaku:Chameleon:0.9.10'
|
||||
compile 'com.github.mariotaku:Chameleon:0.9.11'
|
||||
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||
compile 'nl.komponents.kovenant:kovenant:3.3.0'
|
||||
compile 'nl.komponents.kovenant:kovenant-android:3.3.0'
|
||||
|
|
|
@ -37,6 +37,7 @@ import android.support.v4.content.ContextCompat;
|
|||
import android.support.v7.app.TwilightManagerAccessor;
|
||||
import android.support.v7.view.menu.ActionMenuItemView;
|
||||
import android.support.v7.widget.ActionMenuView;
|
||||
import android.support.v7.widget.TintTypedArray;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.support.v7.widget.TwidereToolbar;
|
||||
import android.util.TypedValue;
|
||||
|
@ -174,7 +175,7 @@ public class ThemeUtils implements Constants {
|
|||
|
||||
|
||||
public static Drawable getDrawableFromThemeAttribute(final Context context, int attr) {
|
||||
final TypedArray a = context.obtainStyledAttributes(new int[]{attr});
|
||||
final TintTypedArray a = TintTypedArray.obtainStyledAttributes(context, null, new int[]{attr});
|
||||
try {
|
||||
return a.getDrawable(0);
|
||||
} finally {
|
||||
|
|
|
@ -798,11 +798,11 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
if (resources.getBoolean(R.bool.home_tab_has_multiple_columns)) {
|
||||
mainPager.pageMargin = resources.getDimensionPixelOffset(R.dimen.home_page_margin)
|
||||
mainPager.setPageMarginDrawable(ThemeUtils.getDrawableFromThemeAttribute(this, R.attr.dividerVertical))
|
||||
pagerAdapter.pageWidth = resources.getDimension(R.dimen.preferred_tab_column_width) / resources.displayMetrics.widthPixels
|
||||
pagerAdapter.hasMultipleColumns = true
|
||||
} else {
|
||||
mainPager.pageMargin = 0
|
||||
mainPager.setPageMarginDrawable(null)
|
||||
pagerAdapter.pageWidth = 1f
|
||||
pagerAdapter.hasMultipleColumns = false
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ import android.support.v4.app.FragmentManager
|
|||
import android.support.v4.view.PagerAdapter
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import org.mariotaku.twidere.R
|
||||
import org.mariotaku.twidere.fragment.iface.RefreshScrollTopInterface
|
||||
import org.mariotaku.twidere.fragment.iface.SupportFragmentCallback
|
||||
import org.mariotaku.twidere.model.SupportTabSpec
|
||||
|
@ -44,6 +45,8 @@ class SupportTabsAdapter @JvmOverloads constructor(
|
|||
private val indicator: PagerIndicator? = null
|
||||
) : SupportFixedFragmentStatePagerAdapter(fm), TabProvider, TabListener {
|
||||
|
||||
var hasMultipleColumns: Boolean = false
|
||||
|
||||
private val tab = ArrayList<SupportTabSpec>()
|
||||
|
||||
init {
|
||||
|
@ -91,7 +94,11 @@ class SupportTabsAdapter @JvmOverloads constructor(
|
|||
}
|
||||
|
||||
override fun getPageWidth(position: Int): Float {
|
||||
return pageWidth
|
||||
if (hasMultipleColumns) {
|
||||
val resources = context.resources
|
||||
return resources.getDimension(R.dimen.preferred_tab_column_width) / resources.displayMetrics.widthPixels
|
||||
}
|
||||
return 1f
|
||||
}
|
||||
|
||||
override fun getItem(position: Int): Fragment {
|
||||
|
@ -152,6 +159,4 @@ class SupportTabsAdapter @JvmOverloads constructor(
|
|||
|
||||
private val EXTRA_ADAPTER_POSITION = "adapter_position"
|
||||
}
|
||||
|
||||
var pageWidth: Float = 1f
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ package org.mariotaku.twidere.fragment
|
|||
|
||||
import android.content.Context
|
||||
import android.graphics.Rect
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.Bundle
|
||||
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener
|
||||
import android.view.*
|
||||
|
@ -45,11 +46,14 @@ abstract class AbsContentListViewFragment<A : ListAdapter> : BaseFragment(),
|
|||
OnRefreshListener, RefreshScrollTopInterface, ControlBarOffsetListener, ContentListSupport,
|
||||
AbsListView.OnScrollListener {
|
||||
private lateinit var scrollHandler: ListViewScrollHandler
|
||||
// Data fields
|
||||
private val systemWindowsInsets = Rect()
|
||||
|
||||
protected open val overrideDivider: Drawable?
|
||||
get() = ThemeUtils.getDrawableFromThemeAttribute(context, android.R.attr.listDivider)
|
||||
|
||||
override lateinit var adapter: A
|
||||
|
||||
// Data fields
|
||||
private val systemWindowsInsets = Rect()
|
||||
|
||||
override fun onControlBarOffsetChanged(activity: IControlBarActivity, offset: Float) {
|
||||
updateRefreshProgressOffset()
|
||||
|
@ -127,6 +131,7 @@ abstract class AbsContentListViewFragment<A : ListAdapter> : BaseFragment(),
|
|||
}
|
||||
listView.adapter = adapter
|
||||
listView.clipToPadding = false
|
||||
overrideDivider?.let { listView.divider = it }
|
||||
scrollHandler = ListViewScrollHandler(this, ListViewScrollHandler.ListViewCallback(listView)).apply {
|
||||
this.touchSlop = ViewConfiguration.get(context).scaledTouchSlop
|
||||
this.onScrollListener = this@AbsContentListViewFragment
|
||||
|
|
Loading…
Reference in New Issue