improved tab multi columns
This commit is contained in:
parent
184623fd0e
commit
74ff9c4082
|
@ -105,6 +105,11 @@ public class TabPagerIndicator extends RecyclerView implements PagerIndicator, C
|
|||
return mIndicatorAdapter.getItemContext();
|
||||
}
|
||||
|
||||
public int getColumns() {
|
||||
if (mColumns > 0) return mColumns;
|
||||
return 1;
|
||||
}
|
||||
|
||||
public void setColumns(int columns) {
|
||||
mColumns = columns;
|
||||
notifyDataSetChanged();
|
||||
|
@ -307,11 +312,6 @@ public class TabPagerIndicator extends RecyclerView implements PagerIndicator, C
|
|||
return position >= current && position < current + columns;
|
||||
}
|
||||
|
||||
private int getColumns() {
|
||||
if (mColumns > 0) return mColumns;
|
||||
return 1;
|
||||
}
|
||||
|
||||
public static class Appearance implements ChameleonView.Appearance {
|
||||
@ColorInt
|
||||
int iconColor, labelColor, stripColor;
|
||||
|
|
|
@ -100,8 +100,6 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
private val accountUpdatedListener = AccountUpdatedListener(this)
|
||||
|
||||
private var selectedAccountToSearch: AccountDetails? = null
|
||||
private var tabColumns: Int = 0
|
||||
|
||||
|
||||
private lateinit var multiSelectHandler: MultiSelectEventHandler
|
||||
|
||||
|
@ -334,8 +332,6 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
val refreshOnStart = preferences.getBoolean(SharedPreferenceConstants.KEY_REFRESH_ON_START, false)
|
||||
var tabDisplayOptionInt = Utils.getTabDisplayOptionInt(this)
|
||||
|
||||
tabColumns = resources.getInteger(R.integer.default_tab_columns)
|
||||
|
||||
drawerToggle = ActionBarDrawerToggle(this, homeMenu, R.string.open_accounts_dashboard,
|
||||
R.string.close_accounts_dashboard)
|
||||
homeContent.setOnFitSystemWindowsListener(this)
|
||||
|
@ -343,7 +339,6 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
mainPager.adapter = pagerAdapter
|
||||
mainTabs.setViewPager(mainPager)
|
||||
mainTabs.setOnPageChangeListener(this)
|
||||
mainTabs.setColumns(tabColumns)
|
||||
if (tabDisplayOptionInt == 0) {
|
||||
tabDisplayOptionInt = TabPagerIndicator.DisplayOption.ICON
|
||||
}
|
||||
|
@ -561,7 +556,7 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
}
|
||||
|
||||
override fun getControlBarOffset(): Float {
|
||||
if (tabColumns > 1) {
|
||||
if (mainTabs.columns > 1) {
|
||||
val lp = actionsButton.layoutParams
|
||||
val total: Float
|
||||
if (lp is MarginLayoutParams) {
|
||||
|
@ -576,7 +571,7 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
}
|
||||
|
||||
override fun setControlBarOffset(offset: Float) {
|
||||
val translationY = if (tabColumns > 1) 0 else (controlBarHeight * (offset - 1)).toInt()
|
||||
val translationY = if (mainTabs.columns > 1) 0 else (controlBarHeight * (offset - 1)).toInt()
|
||||
toolbar.translationY = translationY.toFloat()
|
||||
windowOverlay.translationY = translationY.toFloat()
|
||||
val lp = actionsButton.layoutParams
|
||||
|
@ -795,14 +790,16 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
|
|||
val hasNoTab = pagerAdapter.count == 0
|
||||
emptyTabHint.visibility = if (hasNoTab) View.VISIBLE else View.GONE
|
||||
mainPager.visibility = if (hasNoTab) View.GONE else View.VISIBLE
|
||||
if (resources.getBoolean(R.bool.home_tab_has_multiple_columns)) {
|
||||
if (pagerAdapter.count > 1 && 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.hasMultipleColumns = true
|
||||
mainTabs.columns = Math.floor(1.0 / pagerAdapter.getPageWidth(0)).toInt()
|
||||
} else {
|
||||
mainPager.pageMargin = 0
|
||||
mainPager.setPageMarginDrawable(null)
|
||||
pagerAdapter.hasMultipleColumns = false
|
||||
mainTabs.columns = 1
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -94,9 +94,17 @@ class SupportTabsAdapter @JvmOverloads constructor(
|
|||
}
|
||||
|
||||
override fun getPageWidth(position: Int): Float {
|
||||
val columnCount = count
|
||||
if (columnCount == 0) return 1f
|
||||
if (hasMultipleColumns) {
|
||||
val resources = context.resources
|
||||
return resources.getDimension(R.dimen.preferred_tab_column_width) / resources.displayMetrics.widthPixels
|
||||
val screenWidth = resources.displayMetrics.widthPixels
|
||||
val preferredColumnWidth = resources.getDimension(R.dimen.preferred_tab_column_width)
|
||||
val pageWidth = preferredColumnWidth / screenWidth
|
||||
if (columnCount * preferredColumnWidth < screenWidth) {
|
||||
return 1f / columnCount
|
||||
}
|
||||
return pageWidth
|
||||
}
|
||||
return 1f
|
||||
}
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Twidere - Twitter client for Android
|
||||
~
|
||||
~ Copyright (C) 2012-2015 Mariotaku Lee <mariotaku.lee@gmail.com>
|
||||
~
|
||||
~ This program is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ This program is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
|
||||
<integer name="default_tab_columns">3</integer>
|
||||
|
||||
</resources>
|
|
@ -3,6 +3,5 @@
|
|||
|
||||
<integer name="nyan_star_rows">8</integer>
|
||||
<integer name="nyan_star_cols">23</integer>
|
||||
<integer name="default_multi_column_list_count">2</integer>
|
||||
|
||||
</resources>
|
|
@ -3,6 +3,5 @@
|
|||
|
||||
<integer name="nyan_star_rows">13</integer>
|
||||
<integer name="nyan_star_cols">31</integer>
|
||||
<integer name="default_multi_column_list_count">3</integer>
|
||||
|
||||
</resources>
|
|
@ -4,7 +4,6 @@
|
|||
<integer name="nyan_star_rows">15</integer>
|
||||
<integer name="nyan_star_cols">19</integer>
|
||||
<integer name="unread_count_text_size">12</integer>
|
||||
<integer name="default_multi_column_list_count">2</integer>
|
||||
<integer name="theme_preview_pane_space_weight">2</integer>
|
||||
<integer name="default_live_wallpaper_scale">3</integer>
|
||||
<integer name="staggered_grid_columns_port">2</integer>
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
<string name="default_tab_display_option">icon</string>
|
||||
<string name="profile_image_size">normal</string>
|
||||
<string name="default_profile_image_style">round</string>
|
||||
<integer name="default_tab_columns">1</integer>
|
||||
<integer name="min_database_item_limit">50</integer>
|
||||
|
||||
</resources>
|
|
@ -6,7 +6,6 @@
|
|||
<integer name="nyan_star_rows">8</integer>
|
||||
<integer name="nyan_star_cols">11</integer>
|
||||
<integer name="unread_count_text_size">10</integer>
|
||||
<integer name="default_multi_column_list_count">1</integer>
|
||||
<integer name="max_action_buttons">2</integer>
|
||||
<integer name="max_action_buttons_bottom">4</integer>
|
||||
<integer name="activity_anim_time">@android:integer/config_shortAnimTime</integer>
|
||||
|
|
Loading…
Reference in New Issue