Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
MVPArms
提交
70aa0f9e
M
MVPArms
项目概览
门心叼龙
/
MVPArms
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
MVPArms
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
70aa0f9e
编写于
6月 11, 2017
作者:
J
jessyan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Optional AutoLayout
上级
7044aa36
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
89 addition
and
50 deletion
+89
-50
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+3
-1
arms/src/main/java/com/jess/arms/base/BaseActivity.java
arms/src/main/java/com/jess/arms/base/BaseActivity.java
+4
-17
arms/src/main/java/com/jess/arms/base/BaseHolder.java
arms/src/main/java/com/jess/arms/base/BaseHolder.java
+2
-2
arms/src/main/java/com/jess/arms/integration/AppManager.java
arms/src/main/java/com/jess/arms/integration/AppManager.java
+1
-1
arms/src/main/java/com/jess/arms/utils/KnifeUtil.java
arms/src/main/java/com/jess/arms/utils/KnifeUtil.java
+0
-29
arms/src/main/java/com/jess/arms/utils/ThirdViewUtil.java
arms/src/main/java/com/jess/arms/utils/ThirdViewUtil.java
+79
-0
未找到文件。
app/src/main/AndroidManifest.xml
浏览文件 @
70aa0f9e
...
...
@@ -26,7 +26,8 @@
</intent-filter>
</activity>
<!-- autolayout meta
将设计图的宽高配置后,配合AutoLauout控件使用,在设计图尺寸以外的其它尺寸手机上,也能达到和设计图一样的效果
配置设计图的宽高,配合AutoLauout控件使用,在设计图尺寸以外的其它尺寸手机上,也能达到和设计图一样的效果
注意: 本框架并不强制你使用 AutoLayout,如果你不想使用 AutoLayout,就不要配置下面的 meta-data
-->
<meta-data
android:name=
"design_width"
...
...
@@ -34,6 +35,7 @@
<meta-data
android:name=
"design_height"
android:value=
"1920"
/>
<!--glide配置-->
<meta-data
android:name=
"com.jess.arms.widget.imageloader.glide.GlideConfiguration"
...
...
arms/src/main/java/com/jess/arms/base/BaseActivity.java
浏览文件 @
70aa0f9e
...
...
@@ -7,37 +7,23 @@ import android.view.View;
import
com.jess.arms.base.delegate.IActivity
;
import
com.jess.arms.mvp.IPresenter
;
import
com.trello.rxlifecycle2.components.support.RxAppCompatActivity
;
import
com.zhy.autolayout.AutoFrameLayout
;
import
com.zhy.autolayout.AutoLinearLayout
;
import
com.zhy.autolayout.AutoRelativeLayout
;
import
javax.inject.Inject
;
import
static
com
.
jess
.
arms
.
base
.
delegate
.
ActivityDelegate
.
LAYOUT_FRAMELAYOUT
;
import
static
com
.
jess
.
arms
.
base
.
delegate
.
ActivityDelegate
.
LAYOUT_LINEARLAYOUT
;
import
static
com
.
jess
.
arms
.
base
.
delegate
.
ActivityDelegate
.
LAYOUT_RELATIVELAYOUT
;
import
static
com
.
jess
.
arms
.
utils
.
ThirdViewUtil
.
convertAutoView
;
/**
* 因为java只能单继承,所以如果有需要继承特定Activity的三方库,那你就需要自己自定义Activity
* 继承于这个特定的Activity,然后按照将BaseActivity的格式,复制过去记住一定要实现{@link IActivity}
*/
public
abstract
class
BaseActivity
<
P
extends
IPresenter
>
extends
RxAppCompatActivity
implements
IActivity
{
public
abstract
class
BaseActivity
<
P
extends
IPresenter
>
extends
RxAppCompatActivity
implements
IActivity
{
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
@Inject
protected
P
mPresenter
;
@Override
public
View
onCreateView
(
String
name
,
Context
context
,
AttributeSet
attrs
)
{
View
view
=
null
;
if
(
name
.
equals
(
LAYOUT_FRAMELAYOUT
))
{
view
=
new
AutoFrameLayout
(
context
,
attrs
);
}
if
(
name
.
equals
(
LAYOUT_LINEARLAYOUT
))
{
view
=
new
AutoLinearLayout
(
context
,
attrs
);
}
if
(
name
.
equals
(
LAYOUT_RELATIVELAYOUT
))
{
view
=
new
AutoRelativeLayout
(
context
,
attrs
);
}
View
view
=
convertAutoView
(
name
,
context
,
attrs
);
return
view
==
null
?
super
.
onCreateView
(
name
,
context
,
attrs
)
:
view
;
}
...
...
@@ -62,6 +48,7 @@ public abstract class BaseActivity<P extends IPresenter> extends RxAppCompatActi
/**
* 这个Activity是否会使用Fragment,框架会根据这个属性判断是否注册{@link android.support.v4.app.FragmentManager.FragmentLifecycleCallbacks}
* 如果返回false,那意味着这个Activity不需要绑定Fragment,那你再在这个Activity中绑定继承于 {@link com.jess.arms.base.BaseFragment} 的Fragment将不起任何作用
*
* @return
*/
@Override
...
...
arms/src/main/java/com/jess/arms/base/BaseHolder.java
浏览文件 @
70aa0f9e
...
...
@@ -3,7 +3,7 @@ package com.jess.arms.base;
import
android.support.v7.widget.RecyclerView
;
import
android.view.View
;
import
com.jess.arms.utils.
Knife
Util
;
import
com.jess.arms.utils.
ThirdView
Util
;
import
com.zhy.autolayout.utils.AutoUtils
;
/**
...
...
@@ -16,7 +16,7 @@ public abstract class BaseHolder<T> extends RecyclerView.ViewHolder implements V
super
(
itemView
);
itemView
.
setOnClickListener
(
this
);
//点击事件
AutoUtils
.
autoSize
(
itemView
);
//适配
Knife
Util
.
bindTarget
(
this
,
itemView
);
//绑定
ThirdView
Util
.
bindTarget
(
this
,
itemView
);
//绑定
}
...
...
arms/src/main/java/com/jess/arms/integration/AppManager.java
浏览文件 @
70aa0f9e
...
...
@@ -30,7 +30,7 @@ import timber.log.Timber;
* Contact with jess.yan.effort@gmail.com
*/
@Singleton
public
class
AppManager
{
public
final
class
AppManager
{
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
public
static
final
String
APPMANAGER_MESSAGE
=
"appmanager_message"
;
public
static
final
String
IS_NOT_ADD_ACTIVITY_LIST
=
"is_add_activity_list"
;
//是否加入到activity的list,管理
...
...
arms/src/main/java/com/jess/arms/utils/KnifeUtil.java
已删除
100644 → 0
浏览文件 @
7044aa36
package
com.jess.arms.utils
;
import
android.app.Activity
;
import
android.app.Dialog
;
import
android.view.View
;
import
butterknife.ButterKnife
;
import
butterknife.Unbinder
;
/**
* Created by zhiyicx on 2016/3/17.
*/
public
class
KnifeUtil
{
private
KnifeUtil
()
{
}
public
static
Unbinder
bindTarget
(
Object
target
,
Object
source
)
{
if
(
source
instanceof
Activity
)
{
return
ButterKnife
.
bind
(
target
,
(
Activity
)
source
);
}
else
if
(
source
instanceof
View
)
{
return
ButterKnife
.
bind
(
target
,
(
View
)
source
);
}
else
if
(
source
instanceof
Dialog
)
{
return
ButterKnife
.
bind
(
target
,
(
Dialog
)
source
);
}
else
{
return
Unbinder
.
EMPTY
;
}
}
}
arms/src/main/java/com/jess/arms/utils/ThirdViewUtil.java
0 → 100644
浏览文件 @
70aa0f9e
package
com.jess.arms.utils
;
import
android.app.Activity
;
import
android.app.Dialog
;
import
android.content.Context
;
import
android.content.pm.ApplicationInfo
;
import
android.content.pm.PackageManager
;
import
android.support.annotation.Nullable
;
import
android.util.AttributeSet
;
import
android.view.View
;
import
com.zhy.autolayout.AutoFrameLayout
;
import
com.zhy.autolayout.AutoLinearLayout
;
import
com.zhy.autolayout.AutoRelativeLayout
;
import
butterknife.ButterKnife
;
import
butterknife.Unbinder
;
import
static
com
.
jess
.
arms
.
base
.
delegate
.
ActivityDelegate
.
LAYOUT_FRAMELAYOUT
;
import
static
com
.
jess
.
arms
.
base
.
delegate
.
ActivityDelegate
.
LAYOUT_LINEARLAYOUT
;
import
static
com
.
jess
.
arms
.
base
.
delegate
.
ActivityDelegate
.
LAYOUT_RELATIVELAYOUT
;
/**
* Created by zhiyicx on 2016/3/17.
*/
public
class
ThirdViewUtil
{
public
static
int
USE_AUTOLAYOUT
=
-
1
;
//0 说明 AndroidManifest 里面没有使用 AutoLauout 的Meta,即不使用 AutoLayout,1 为有 Meta ,即需要使用
private
ThirdViewUtil
()
{
}
public
static
Unbinder
bindTarget
(
Object
target
,
Object
source
)
{
if
(
source
instanceof
Activity
)
{
return
ButterKnife
.
bind
(
target
,
(
Activity
)
source
);
}
else
if
(
source
instanceof
View
)
{
return
ButterKnife
.
bind
(
target
,
(
View
)
source
);
}
else
if
(
source
instanceof
Dialog
)
{
return
ButterKnife
.
bind
(
target
,
(
Dialog
)
source
);
}
else
{
return
Unbinder
.
EMPTY
;
}
}
@Nullable
public
static
View
convertAutoView
(
String
name
,
Context
context
,
AttributeSet
attrs
)
{
//本框架并不强制你使用 AutoLayout
//如果你不想使用 AutoLayout ,就不要在 AndroidManifest 中声明, AutoLayout 的 Meta属性(design_width,design_height)
if
(
USE_AUTOLAYOUT
==
-
1
)
{
USE_AUTOLAYOUT
=
1
;
PackageManager
packageManager
=
context
.
getPackageManager
();
ApplicationInfo
applicationInfo
;
try
{
applicationInfo
=
packageManager
.
getApplicationInfo
(
context
.
getPackageName
(),
PackageManager
.
GET_META_DATA
);
if
(
applicationInfo
==
null
||
applicationInfo
.
metaData
==
null
||
!
applicationInfo
.
metaData
.
containsKey
(
"design_width"
)
||
!
applicationInfo
.
metaData
.
containsKey
(
"design_height"
))
{
USE_AUTOLAYOUT
=
0
;
}
}
catch
(
PackageManager
.
NameNotFoundException
e
)
{
USE_AUTOLAYOUT
=
0
;
}
}
if
(
USE_AUTOLAYOUT
==
0
)
{
return
null
;
}
View
view
=
null
;
if
(
name
.
equals
(
LAYOUT_FRAMELAYOUT
))
{
view
=
new
AutoFrameLayout
(
context
,
attrs
);
}
else
if
(
name
.
equals
(
LAYOUT_LINEARLAYOUT
))
{
view
=
new
AutoLinearLayout
(
context
,
attrs
);
}
else
if
(
name
.
equals
(
LAYOUT_RELATIVELAYOUT
))
{
view
=
new
AutoRelativeLayout
(
context
,
attrs
);
}
return
view
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录