Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev/1.1.4 #67

Merged
merged 36 commits into from
Jun 14, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
cad4f59
1.切分出1.1.4开发分支
xuexiangjys Mar 9, 2020
35fcd95
增加内联布局使用演示
xuexiangjys Mar 11, 2020
030f637
增加vlayout演示
xuexiangjys Mar 19, 2020
a6350a2
修复AdapterItem可能存在的问题
xuexiangjys Mar 21, 2020
833548a
删除wiki图片
xuexiangjys Mar 24, 2020
be78ca6
调整快捷搜索功能页面
xuexiangjys Mar 31, 2020
14e93ba
修改多个页面的启动模式
xuexiangjys Apr 1, 2020
10dcaeb
MaterialEditText增加支持下划线高度设置的属性
xuexiangjys Apr 1, 2020
d84066f
增加控件自定义动画
xuexiangjys Apr 1, 2020
828dcf7
增加NestedScrollingParent2使用
xuexiangjys Apr 6, 2020
3ab59a4
完善vlayout的使用案例
xuexiangjys Apr 6, 2020
cdd6df0
完善阿里巴巴组件使用案例
xuexiangjys Apr 6, 2020
b589073
完善阿里巴巴组件使用案例
xuexiangjys Apr 8, 2020
d12d30c
完善阿里巴巴组件使用案例
xuexiangjys Apr 9, 2020
9508882
增加复杂嵌套滚动效果案例
xuexiangjys Apr 12, 2020
f86a4b0
增加内容
xuexiangjys Apr 18, 2020
c6fea3a
优化选项卡使用案例
xuexiangjys Apr 20, 2020
021088d
增加粘顶嵌套滚动布局使用案例
xuexiangjys Apr 24, 2020
6598a0a
增加多状态布局加载者
xuexiangjys Apr 28, 2020
30025c6
完善多状态布局加载者演示
xuexiangjys Apr 29, 2020
a99896e
粘顶效果的多种实现方式演示
xuexiangjys May 2, 2020
0df7ace
增加工具类
xuexiangjys May 2, 2020
f80b6d8
解决图片预览可能存在的崩溃问题
xuexiangjys May 3, 2020
0ca0e24
优化代码,提高代码质量
xuexiangjys May 3, 2020
0823acb
优化代码,提高代码质量
xuexiangjys May 7, 2020
624f79d
优化代码,提高代码质量
xuexiangjys May 8, 2020
2dd304a
增加工具类
May 13, 2020
9b08517
优化代码,提高代码质量
xuexiangjys May 13, 2020
c3a9680
升级target版本为29
xuexiangjys May 13, 2020
700f61e
升级字体库版本
xuexiangjys May 19, 2020
10b0d3e
增加自动断字演示
xuexiangjys May 19, 2020
88a96b6
完善组件
xuexiangjys May 20, 2020
513361f
设置存储兼容模式
xuexiangjys May 20, 2020
71128d2
增加ViewPager2使用案例
May 29, 2020
8782ae8
升级XUtil库的版本
xuexiangjys Jun 5, 2020
6bfc161
发布1.1.4版本
xuexiangjys Jun 14, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
升级字体库版本
  • Loading branch information
xuexiangjys committed May 19, 2020
commit 700f61ed113c8978808a3b02e73f79e1e5638e29
2 changes: 1 addition & 1 deletion app/src/main/java/com/xuexiang/xuidemo/MyApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ private void initUI() {
XUI.init(this);
XUI.debug(MyApp.isDebug());
// //设置默认字体为华文行楷
// XUI.getInstance().initFontStyle("fonts/hwxk.ttf");
XUI.getInstance().initFontStyle("fonts/hwxk.ttf");
PictureFileUtils.setAppName("xui");

//字体图标库
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.umeng.analytics.MobclickAgent;
import com.xuexiang.xui.utils.ResUtils;
import com.xuexiang.xui.utils.ThemeUtils;
import com.xuexiang.xui.utils.WidgetUtils;
import com.xuexiang.xui.widget.dialog.DialogLoader;
import com.xuexiang.xui.widget.guidview.GuideCaseQueue;
import com.xuexiang.xui.widget.guidview.GuideCaseView;
Expand Down Expand Up @@ -112,6 +113,8 @@ private void initTab() {
expand.setIcon(SettingSPUtils.getInstance().isUseCustomTheme() ? R.drawable.custom_selector_icon_tabbar_expand : R.drawable.selector_icon_tabbar_expand);
mTabLayout.addTab(expand);

WidgetUtils.setTabLayoutTextFont(mTabLayout);

switchPage(ComponentsFragment.class);

mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/xuexiang/xuidemo/base/BaseActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

import butterknife.ButterKnife;
import butterknife.Unbinder;
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper;
import io.github.inflationx.viewpump.ViewPumpContextWrapper;

/**
* 基础容器Activity
Expand Down Expand Up @@ -44,7 +44,7 @@ public class BaseActivity extends XPageActivity {
@Override
protected void attachBaseContext(Context newBase) {
//注入字体
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.xuexiang.xuidemo.R;
import com.xuexiang.xuidemo.base.ComponentContainerFragment;
import com.xuexiang.xuidemo.fragment.components.textview.AutoFitTextViewFragment;
import com.xuexiang.xuidemo.fragment.components.textview.AutoHyphenationTextViewFragment;
import com.xuexiang.xuidemo.fragment.components.textview.BadgeViewFragment;
import com.xuexiang.xuidemo.fragment.components.textview.ExpandableTextViewFragment;
import com.xuexiang.xuidemo.fragment.components.textview.GroupListViewFragment;
Expand All @@ -27,7 +28,8 @@ public Class[] getPagesClasses() {
ExpandableTextViewFragment.class,
LabelViewFragment.class,
BadgeViewFragment.class,
AutoFitTextViewFragment.class
AutoFitTextViewFragment.class,
AutoHyphenationTextViewFragment.class
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import com.google.android.material.tabs.TabLayout;
import com.xuexiang.xaop.annotation.SingleClick;
import com.xuexiang.xpage.annotation.Page;
import com.xuexiang.xui.utils.WidgetUtils;
import com.xuexiang.xuidemo.R;
import com.xuexiang.xuidemo.base.BaseFragment;
import com.xuexiang.xuidemo.fragment.components.tabbar.tabsegment.MultiPage;
Expand Down Expand Up @@ -129,7 +130,8 @@ private void refreshAdapter(boolean isShow) {
mAdapter.addFragment(SimpleTabFragment.newInstance(page), page);
}
mAdapter.notifyDataSetChanged();
viewPager.setCurrentItem(0);
viewPager.setCurrentItem(0, false);
WidgetUtils.setTabLayoutTextFont(tabLayout);
} else {
mAdapter.clear();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.google.android.material.tabs.TabLayout;
import com.xuexiang.xpage.annotation.Page;
import com.xuexiang.xui.adapter.FragmentAdapter;
import com.xuexiang.xui.utils.WidgetUtils;
import com.xuexiang.xuidemo.R;
import com.xuexiang.xuidemo.base.BaseFragment;
import com.xuexiang.xuidemo.fragment.components.tabbar.tabsegment.MultiPage;
Expand Down Expand Up @@ -67,6 +68,10 @@ protected void initViews() {
mTabLayout.addOnTabSelectedListener(this);
mViewPager.setAdapter(adapter);
mTabLayout.setupWithViewPager(mViewPager);

WidgetUtils.setTabLayoutTextFont(mTabLayout);
WidgetUtils.setTabLayoutTextFont(mTabLayout1);

}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* Copyright (C) 2020 xuexiangjys(xuexiangjys@163.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

package com.xuexiang.xuidemo.fragment.components.textview;

import com.xuexiang.xpage.annotation.Page;
import com.xuexiang.xuidemo.R;
import com.xuexiang.xuidemo.base.BaseFragment;

/**
* @author xuexiang
* @since 2020/5/20 1:15 AM
*/
@Page(name = "自动断字换行文本")
public class AutoHyphenationTextViewFragment extends BaseFragment {

@Override
protected int getLayoutId() {
return R.layout.fragment_auto_hyphenation_textview;
}

@Override
protected void initViews() {


}
}
31 changes: 31 additions & 0 deletions app/src/main/res/layout/fragment_auto_hyphenation_textview.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (C) 2020 xuexiangjys(xuexiangjys@163.com)
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
~
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">


<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:breakStrategy="high_quality"
android:hyphenationFrequency="full"
android:text="@string/large_text" />

</LinearLayout>
2 changes: 1 addition & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<string name="app_name">XUIDemo</string>
<string name="app_browser_name">XUI浏览器</string>
<!--华文行楷字体路径,其实可以不设置-->
<!--<string name="default_app_font_path">fonts/hwxk.ttf</string>-->
<string name="default_app_font_path">fonts/hwxk.ttf</string>

<string name="style_default">默认样式</string>
<string name="style_md_ios">Material Design &#038; iOS Style</string>
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-all.zip
5 changes: 3 additions & 2 deletions xui_lib/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,14 @@ android {
}

dependencies {
compileOnly deps.androidx.appcompat
implementation deps.androidx.appcompat
compileOnly deps.androidx.recyclerview
compileOnly deps.androidx.design

compileOnly deps.glide

api 'uk.co.chrisjenx:calligraphy:2.3.0'
api 'io.github.inflationx:calligraphy3:3.1.1'
api 'io.github.inflationx:viewpump:2.0.3'
}

apply from: '../JitPackUpload.gradle'
38 changes: 27 additions & 11 deletions xui_lib/src/main/java/com/xuexiang/xui/XUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@

import com.xuexiang.xui.logs.UILog;

import uk.co.chrisjenx.calligraphy.CalligraphyConfig;
import uk.co.chrisjenx.calligraphy.TypefaceUtils;
import io.github.inflationx.calligraphy3.CalligraphyConfig;
import io.github.inflationx.calligraphy3.CalligraphyInterceptor;
import io.github.inflationx.calligraphy3.TypefaceUtils;
import io.github.inflationx.viewpump.ViewPump;

/**
* UI全局设置
Expand All @@ -30,6 +32,8 @@ public class XUI {

private static int sScreenType;

private static String sDefaultFontAssetPath;

private XUI() {

}
Expand All @@ -51,6 +55,7 @@ public static XUI getInstance() {
}

//=======================初始化设置===========================//

/**
* 初始化
*
Expand All @@ -64,10 +69,16 @@ public static void init(Application context) {
* 设置默认字体
*/
public XUI initFontStyle(String defaultFontAssetPath) {
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath(defaultFontAssetPath)
.setFontAttrId(R.attr.fontPath)
.build());
if (!TextUtils.isEmpty(defaultFontAssetPath)) {
sDefaultFontAssetPath = defaultFontAssetPath;
ViewPump.init(ViewPump.builder()
.addInterceptor(new CalligraphyInterceptor(
new CalligraphyConfig.Builder()
.setDefaultFontPath(defaultFontAssetPath)
.setFontAttrId(R.attr.fontPath)
.build()))
.build());
}
return this;
}

Expand All @@ -83,6 +94,7 @@ private static void testInitialize() {
}

//=======================日志调试===========================//

/**
* 设置调试模式
*
Expand All @@ -104,14 +116,14 @@ public static void debug(boolean isDebug) {
}

//=======================字体===========================//

/**
* @return 获取默认字体
*/
@Nullable
public static Typeface getDefaultTypeface() {
String fontPath = CalligraphyConfig.get().getFontPath();
if (!TextUtils.isEmpty(fontPath)) {
return TypefaceUtils.load(getContext().getAssets(), fontPath);
if (!TextUtils.isEmpty(sDefaultFontAssetPath)) {
return TypefaceUtils.load(getContext().getAssets(), sDefaultFontAssetPath);
}
return null;
}
Expand All @@ -123,7 +135,7 @@ public static Typeface getDefaultTypeface() {
@Nullable
public static Typeface getDefaultTypeface(String fontPath) {
if (TextUtils.isEmpty(fontPath)) {
fontPath = CalligraphyConfig.get().getFontPath();
fontPath = sDefaultFontAssetPath;
}
if (!TextUtils.isEmpty(fontPath)) {
return TypefaceUtils.load(getContext().getAssets(), fontPath);
Expand All @@ -135,6 +147,7 @@ public static Typeface getDefaultTypeface(String fontPath) {

/**
* 检验设备屏幕的尺寸
*
* @param context
* @return
*/
Expand All @@ -154,6 +167,7 @@ private static int checkScreenSize(Context context) {

/**
* 判断是否平板设备
*
* @return true:平板,false:手机
*/
public static int getScreenType() {
Expand All @@ -167,6 +181,7 @@ public static int getScreenType() {

/**
* 是否是平板
*
* @return
*/
public static boolean isTablet() {
Expand All @@ -175,13 +190,14 @@ public static boolean isTablet() {

/**
* 初始化主题
*
* @param activity
*/
public static void initTheme(Activity activity) {
int screenType = getScreenType();
if (screenType == UIConsts.ScreenType.PHONE) {
activity.setTheme(R.style.XUITheme_Phone);
} else if (screenType == UIConsts.ScreenType.SMALL_TABLET){
} else if (screenType == UIConsts.ScreenType.SMALL_TABLET) {
activity.setTheme(R.style.XUITheme_Tablet_Small);
} else {
activity.setTheme(R.style.XUITheme_Tablet_Big);
Expand Down
42 changes: 42 additions & 0 deletions xui_lib/src/main/java/com/xuexiang/xui/utils/WidgetUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,23 @@

import android.app.Activity;
import android.content.Context;
import android.graphics.Typeface;
import android.os.Build;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.RecyclerView;

import com.google.android.material.tabs.TabLayout;
import com.xuexiang.xui.R;
import com.xuexiang.xui.XUI;
import com.xuexiang.xui.adapter.recyclerview.DividerItemDecoration;
import com.xuexiang.xui.adapter.recyclerview.GridDividerItemDecoration;
import com.xuexiang.xui.adapter.recyclerview.XGridLayoutManager;
Expand Down Expand Up @@ -94,6 +100,42 @@ public static void setSpinnerDropDownVerticalOffset(Spinner spinner) {
}
}

//===============TabLayout=============//

/**
* 设置TabLayout选项卡的字体
*
* @param tabLayout 选项卡
*/
public static void setTabLayoutTextFont(TabLayout tabLayout) {
setTabLayoutTextFont(tabLayout, XUI.getDefaultTypeface());
}

/**
* 设置TabLayout选项卡的字体
*
* @param tabLayout 选项卡
* @param typeface 字体
*/
public static void setTabLayoutTextFont(TabLayout tabLayout, Typeface typeface) {
if (tabLayout == null || typeface == null) {
return;
}
ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0);
int tabsCount = vg.getChildCount();
for (int i = 0; i < tabsCount; i++) {
ViewGroup vgTab = (ViewGroup) vg.getChildAt(i);
int tabCount = vgTab.getChildCount();
for (int j = 0; j < tabCount; j++) {
View tabViewChild = vgTab.getChildAt(j);
if (tabViewChild instanceof TextView) {
((TextView) tabViewChild).setTypeface(typeface, Typeface.NORMAL);
}
}
}
}


//===============recyclerView=============//

/**
Expand Down
Loading