From eb08b57fedfe0a1b8878c3ccc1b97076055392e7 Mon Sep 17 00:00:00 2001 From: hongyangAndroid Date: Mon, 14 Mar 2016 21:16:32 +0800 Subject: [PATCH 1/9] fixed #68 --- README.md | 4 ++-- autolayout/build.gradle | 2 +- .../main/java/com/zhy/autolayout/AutoLayoutInfo.java | 12 ++++++++---- .../java/com/zhy/autolayout/attr/MarginTopAttr.java | 1 + .../java/com/zhy/autolayout/utils/AutoUtils.java | 3 ++- .../main/java/com/zhy/sample/CategoryActivity.java | 1 - 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index a0d78ed..1e724a7 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ dependencies { ``` dependencies { - compile 'com.zhy:autolayout:1.4.1' + compile 'com.zhy:autolayout:1.4.3' } ``` * Eclipse -下载[AutoLayoutDemoForEclipse.zip](AutoLayoutDemoForEclipse.zip),导入到eclipse中即可。 +建议使用As,方便版本更新。实在不行,只有复制粘贴源码了。 ## 用法 diff --git a/autolayout/build.gradle b/autolayout/build.gradle index 2c13686..f286d30 100644 --- a/autolayout/build.gradle +++ b/autolayout/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "1.4.1" +version = "1.4.3" android { compileSdkVersion 23 diff --git a/autolayout/src/main/java/com/zhy/autolayout/AutoLayoutInfo.java b/autolayout/src/main/java/com/zhy/autolayout/AutoLayoutInfo.java index ae34c3f..ebe2a2a 100644 --- a/autolayout/src/main/java/com/zhy/autolayout/AutoLayoutInfo.java +++ b/autolayout/src/main/java/com/zhy/autolayout/AutoLayoutInfo.java @@ -15,6 +15,10 @@ import com.zhy.autolayout.attr.MaxWidthAttr; import com.zhy.autolayout.attr.MinHeightAttr; import com.zhy.autolayout.attr.MinWidthAttr; +import com.zhy.autolayout.attr.PaddingBottomAttr; +import com.zhy.autolayout.attr.PaddingLeftAttr; +import com.zhy.autolayout.attr.PaddingRightAttr; +import com.zhy.autolayout.attr.PaddingTopAttr; import com.zhy.autolayout.attr.TextSizeAttr; import com.zhy.autolayout.attr.WidthAttr; @@ -88,10 +92,10 @@ public static AutoLayoutInfo getAttrFromView(View view, int attrs, int base) //padding if ((attrs & Attrs.PADDING) != 0) { - autoLayoutInfo.addAttr(MarginLeftAttr.generate(view.getPaddingLeft(), base)); - autoLayoutInfo.addAttr(MarginTopAttr.generate(view.getPaddingTop(), base)); - autoLayoutInfo.addAttr(MarginRightAttr.generate(view.getPaddingRight(), base)); - autoLayoutInfo.addAttr(MarginBottomAttr.generate(view.getPaddingBottom(), base)); + autoLayoutInfo.addAttr(PaddingLeftAttr.generate(view.getPaddingLeft(), base)); + autoLayoutInfo.addAttr(PaddingTopAttr.generate(view.getPaddingTop(), base)); + autoLayoutInfo.addAttr(PaddingRightAttr.generate(view.getPaddingRight(), base)); + autoLayoutInfo.addAttr(PaddingBottomAttr.generate(view.getPaddingBottom(), base)); } if ((attrs & Attrs.PADDING_LEFT) != 0) { diff --git a/autolayout/src/main/java/com/zhy/autolayout/attr/MarginTopAttr.java b/autolayout/src/main/java/com/zhy/autolayout/attr/MarginTopAttr.java index 83e63f3..d0821b5 100644 --- a/autolayout/src/main/java/com/zhy/autolayout/attr/MarginTopAttr.java +++ b/autolayout/src/main/java/com/zhy/autolayout/attr/MarginTopAttr.java @@ -34,6 +34,7 @@ protected void execute(View view, int val) } ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams(); lp.topMargin = val; + } diff --git a/autolayout/src/main/java/com/zhy/autolayout/utils/AutoUtils.java b/autolayout/src/main/java/com/zhy/autolayout/utils/AutoUtils.java index e6da19b..1252648 100644 --- a/autolayout/src/main/java/com/zhy/autolayout/utils/AutoUtils.java +++ b/autolayout/src/main/java/com/zhy/autolayout/utils/AutoUtils.java @@ -35,7 +35,8 @@ public static void auto(View view) public static void auto(View view, int attrs, int base) { AutoLayoutInfo autoLayoutInfo = AutoLayoutInfo.getAttrFromView(view, attrs, base); - autoLayoutInfo.fillAttrs(view); + if (autoLayoutInfo != null) + autoLayoutInfo.fillAttrs(view); } public static void autoTextSize(View view) diff --git a/sample/src/main/java/com/zhy/sample/CategoryActivity.java b/sample/src/main/java/com/zhy/sample/CategoryActivity.java index e6ecff0..2301040 100644 --- a/sample/src/main/java/com/zhy/sample/CategoryActivity.java +++ b/sample/src/main/java/com/zhy/sample/CategoryActivity.java @@ -55,5 +55,4 @@ public int getCount() mTabLayout.setupWithViewPager(mViewPager); } - } From 537f065af5208cdd034f9ac0864b3841f97201c7 Mon Sep 17 00:00:00 2001 From: hongyangAndroid Date: Thu, 28 Apr 2016 21:50:14 +0800 Subject: [PATCH 2/9] add FAQ --- README.md | 21 +++++++++++++++---- autolayout/build.gradle | 2 +- autolayout/src/main/AndroidManifest.xml | 8 +------ .../src/main/java/AutoContentFrameLayout.java | 1 + .../java/com/zhy/sample/CategoryActivity.java | 7 +++++++ 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 1e724a7..7f5468a 100644 --- a/README.md +++ b/README.md @@ -283,12 +283,25 @@ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) ### TextView的高度问题 -设计稿一般只会标识一个字体的大小,比如你设置textSize="20px",实际上TextView所占据的高度肯定大于20px,字的上下都会有一定的建议,所以一定要灵活去写字体的高度,比如对于text上下的margin可以选择尽可能小一点。或者选择别的约束条件去定位(比如上例,选择了marginBottom) +设计稿一般只会标识一个字体的大小,比如你设置textSize="20px",实际上TextView所占据的高度肯定大于20px,字的上下都会有一定的间隙,所以一定要灵活去写字体的高度,比如对于text上下的margin可以选择尽可能小一点。或者选择别的约束条件去定位(比如上例,选择了marginBottom) + + +## 常见问题 + +###(1)导入后出现`org/gradle/api/publication/maven/internal/DefaultMavenFactory` + +最简单的方式,通过`compile 'com.zhy:autolayout:x.x.x'`进行依赖使用,如果一定要以module引用,参考该issue[#74](https://github.com/hongyangAndroid/AndroidAutoLayout/issues/74) + +###(2)RadioGroup,Toolbar等控件中的子View无法完成适配 + +这个其实上文已经提到过了,需要自己扩展。不过这个很多使用者贡献了他们的扩展类可以直接使用, +参考[autolayout-widget](https://github.com/hongyangAndroid/AndroidAutoLayout/tree/master/widgetsample), +如果没有发现你需要的容器类,那么你就真的需要自行扩展了,当然如果你完成了扩展,可以给我发个PR,或者让我知道,我可以加入到 +`autolayout-widget`中方便他人,ps:需要用到哪个copy就好了,不要直接引用`autolayout-widget`,因为其引用了大量的库,可能很多 +库你是用不到的。 + -##TODO -* 增加单个Activity横屏布局的支持(设计图必须是横屏的) -* 完善demo(复杂的,简单的,ListView的各种) ## 其他信息 diff --git a/autolayout/build.gradle b/autolayout/build.gradle index f286d30..1c9e0db 100644 --- a/autolayout/build.gradle +++ b/autolayout/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "1.4.3" +version = "1.4.4" android { compileSdkVersion 23 diff --git a/autolayout/src/main/AndroidManifest.xml b/autolayout/src/main/AndroidManifest.xml index 02c4172..4fc9a81 100644 --- a/autolayout/src/main/AndroidManifest.xml +++ b/autolayout/src/main/AndroidManifest.xml @@ -1,10 +1,4 @@ - + - - - diff --git a/autolayout/src/main/java/AutoContentFrameLayout.java b/autolayout/src/main/java/AutoContentFrameLayout.java index 9ceac2b..aaf0305 100644 --- a/autolayout/src/main/java/AutoContentFrameLayout.java +++ b/autolayout/src/main/java/AutoContentFrameLayout.java @@ -26,6 +26,7 @@ public AutoContentFrameLayout(Context context, AttributeSet attrs) public AutoContentFrameLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); + } @Override diff --git a/sample/src/main/java/com/zhy/sample/CategoryActivity.java b/sample/src/main/java/com/zhy/sample/CategoryActivity.java index 2301040..54a4e76 100644 --- a/sample/src/main/java/com/zhy/sample/CategoryActivity.java +++ b/sample/src/main/java/com/zhy/sample/CategoryActivity.java @@ -1,5 +1,6 @@ package com.zhy.sample; +import android.content.Context; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; @@ -19,6 +20,12 @@ public class CategoryActivity extends AutoLayoutActivity {"单个UI", "正方形"}; + @Override + public Context getBaseContext() + { + return super.getBaseContext(); + } + @Override protected void onCreate(Bundle savedInstanceState) { From de8a60d4ad90dea43993b773c09615b23389a5b2 Mon Sep 17 00:00:00 2001 From: hongyangAndroid Date: Fri, 6 May 2016 16:08:53 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0FAQ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 7f5468a..361ee21 100644 --- a/README.md +++ b/README.md @@ -300,6 +300,17 @@ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) `autolayout-widget`中方便他人,ps:需要用到哪个copy就好了,不要直接引用`autolayout-widget`,因为其引用了大量的库,可能很多 库你是用不到的。 +###(3)java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. + +这个问题是因为默认AutoLayoutActivity会继承自AppCompatActivity,所以默认需要设置 +Theme.AppCompat的theme; + +如果你使用的依旧是FragmentActivity等,且不考虑使用AppCompatActivity, +你可以选择自己编写一个`MyAutoLayoutActivity extends 目前你使用的Activity基类`,例如 +`MyAutoLayoutActivity extends FragmentActivity`,然后将该库中AutoLayoutActivity中的逻辑 +拷贝进去即可,以后你就继承你的`MyAutoLayoutActivity`就好了。 + +ps:还是建议尽快更新SDK版本使用`AppCompatActivity`. From 60f6e57cbb325a6eec4d5263386fc70fb36523d3 Mon Sep 17 00:00:00 2001 From: hongyangAndroid Date: Fri, 13 May 2016 10:58:10 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BD=BF=E7=94=A8baseAda?= =?UTF-8?q?pter=E7=9A=84=E4=BE=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- autolayout/build.gradle | 2 +- .../src/main/java/AutoContentFrameLayout.java | 47 ------------------- sample/build.gradle | 1 + .../sample/fragment/RecyclerViewFragment.java | 37 ++++----------- 4 files changed, 12 insertions(+), 75 deletions(-) delete mode 100644 autolayout/src/main/java/AutoContentFrameLayout.java diff --git a/autolayout/build.gradle b/autolayout/build.gradle index 1c9e0db..d02e622 100644 --- a/autolayout/build.gradle +++ b/autolayout/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "1.4.4" +version = "1.4.5" android { compileSdkVersion 23 diff --git a/autolayout/src/main/java/AutoContentFrameLayout.java b/autolayout/src/main/java/AutoContentFrameLayout.java deleted file mode 100644 index aaf0305..0000000 --- a/autolayout/src/main/java/AutoContentFrameLayout.java +++ /dev/null @@ -1,47 +0,0 @@ -import android.content.Context; -import android.support.v7.internal.widget.ContentFrameLayout; -import android.util.AttributeSet; - -import com.zhy.autolayout.AutoFrameLayout; -import com.zhy.autolayout.utils.AutoLayoutHelper; - -/** - * Created by zhy on 16/2/25. - */ -public class AutoContentFrameLayout extends ContentFrameLayout -{ - private final AutoLayoutHelper mHelper = new AutoLayoutHelper(this); - - - public AutoContentFrameLayout(Context context) - { - super(context); - } - - public AutoContentFrameLayout(Context context, AttributeSet attrs) - { - super(context, attrs); - } - - public AutoContentFrameLayout(Context context, AttributeSet attrs, int defStyleAttr) - { - super(context, attrs, defStyleAttr); - - } - - @Override - public AutoFrameLayout.LayoutParams generateLayoutParams(AttributeSet attrs) - { - return new AutoFrameLayout.LayoutParams(getContext(), attrs); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) - { - if (!isInEditMode()) - { - mHelper.adjustChildren(); - } - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - } -} diff --git a/sample/build.gradle b/sample/build.gradle index d806aa3..689b02b 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -23,6 +23,7 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.1.0' compile project(':autolayout') + compile 'com.zhy:base-adapter:2.0.0' compile 'com.android.support:design:23.1.0' compile 'com.android.support:cardview-v7:23.1.0' compile 'com.android.support:recyclerview-v7:23.2.0' diff --git a/sample/src/main/java/com/zhy/sample/fragment/RecyclerViewFragment.java b/sample/src/main/java/com/zhy/sample/fragment/RecyclerViewFragment.java index 130af2d..781a72b 100755 --- a/sample/src/main/java/com/zhy/sample/fragment/RecyclerViewFragment.java +++ b/sample/src/main/java/com/zhy/sample/fragment/RecyclerViewFragment.java @@ -11,6 +11,7 @@ import android.view.ViewGroup; import com.zhy.autolayout.utils.AutoUtils; +import com.zhy.base.adapter.recyclerview.CommonAdapter; import com.zhy.sample.R; import com.zhy.sample.view.DividerItemDecoration; @@ -42,51 +43,33 @@ private void initView() mList.add(i + ""); } mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); - mRecyclerView.setAdapter(new MyAdapter()); + mRecyclerView.setAdapter(new MyAdapter(getActivity(),mList)); mRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST)); } - class MyAdapter extends RecyclerView.Adapter + class MyAdapter extends CommonAdapter { - @Override - public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) - { - View convertView = LayoutInflater.from(mContext).inflate(R.layout.recyclerview_item, parent, false); - return new ViewHolder(convertView); - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) + public MyAdapter(Context context, List datas) { - + super(context, R.layout.recyclerview_item, datas); } @Override - public long getItemId(int position) + public com.zhy.base.adapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - return position; + com.zhy.base.adapter.ViewHolder viewHolder = super.onCreateViewHolder(parent, viewType); + AutoUtils.autoSize(viewHolder.getConvertView()); + return viewHolder; } @Override - public int getItemCount() + public void convert(com.zhy.base.adapter.ViewHolder viewHolder, String s) { - return mList.size(); } - - } - static class ViewHolder extends RecyclerView.ViewHolder - { - public ViewHolder(View itemView) - { - super(itemView); - //对于listview,注意添加这一行,即可在item上使用高度 - AutoUtils.autoSize(itemView); - } - } } From 860485778db92a623cd8998007ed09820c51d789 Mon Sep 17 00:00:00 2001 From: hongyangAndroid Date: Tue, 17 May 2016 14:46:13 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E5=A2=9E=E5=8A=A0autolayout-baseadapter?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sample/build.gradle | 2 +- .../com/zhy/sample/fragment/ListFragment.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/sample/build.gradle b/sample/build.gradle index 689b02b..6fc8339 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -23,7 +23,7 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.1.0' compile project(':autolayout') - compile 'com.zhy:base-adapter:2.0.0' + compile 'com.zhy:base-adapter:2.0.2' compile 'com.android.support:design:23.1.0' compile 'com.android.support:cardview-v7:23.1.0' compile 'com.android.support:recyclerview-v7:23.2.0' diff --git a/sample/src/main/java/com/zhy/sample/fragment/ListFragment.java b/sample/src/main/java/com/zhy/sample/fragment/ListFragment.java index 2444bd6..133117e 100755 --- a/sample/src/main/java/com/zhy/sample/fragment/ListFragment.java +++ b/sample/src/main/java/com/zhy/sample/fragment/ListFragment.java @@ -41,6 +41,21 @@ private void initView() mList.add(i + ""); } mlistview.setAdapter(new MyAdapter()); + +// mlistview.setAdapter(new CommonAdapter(getActivity(),R.layout.list_item,mList) +// { +// @Override +// protected void onConvertViewCreated(View convertView) +// { +// AutoUtils.autoSize(convertView); +// } +// +// @Override +// public void convert(com.zhy.base.adapter.ViewHolder viewHolder, String s) +// { +// +// } +// }); } class MyAdapter extends BaseAdapter From e29298201f2b02754de5edd0b7957ad361a56f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=B8=BF=E6=B4=8B?= <623565791@qq.com> Date: Tue, 20 Sep 2016 15:35:56 +0800 Subject: [PATCH 6/9] Update version to 1.4.5 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 361ee21..6a60315 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ dependencies { ``` dependencies { - compile 'com.zhy:autolayout:1.4.3' + compile 'com.zhy:autolayout:1.4.5' } ``` From 9c5c0dd8866665fdfaa4f32be1decc01ac92a237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=B8=BF=E6=B4=8B?= <623565791@qq.com> Date: Thu, 15 Jun 2017 23:54:35 +0800 Subject: [PATCH 7/9] Create README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6a60315..cd75017 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # AndroidAutoLayout -Android屏幕适配方案,直接填写设计图上的像素尺寸即可完成适配。 +[DEPRECATED]Android屏幕适配方案,直接填写设计图上的像素尺寸即可完成适配。 -非常感谢 : 吃土豆的人 的协作。 +>目前没有精力,已停止维护,使用前务必看明白代码,明确该方案可以解决自身问题,有扩展代码能力,否则不建议使用。 -讨论群:99913714 +非常感谢 : 吃土豆的人 的协作。 ## 效果图 From 35a789b5b49fdba2c5c2bbe49d1054a2e1863211 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=B8=BF=E6=B4=8B?= <623565791@qq.com> Date: Mon, 26 Nov 2018 21:23:36 +0800 Subject: [PATCH 8/9] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index cd75017..8de9cd0 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,12 @@ 非常感谢 : 吃土豆的人 的协作。 + + +AndroidAutoSize目前作者一直在维护,私下也有一些交流,也是 AndroidAutoLayout 3年的使用者,自研了[AndroidAutoSize](https://github.com/JessYanCoding/AndroidAutoSize), 在目前本库已经没有精力维护的情况下,推荐使用;如果使用了本库,迁移成本也非常低,[迁移指南](https://github.com/JessYanCoding/AndroidAutoSize/issues/90)。 + + + ## 效果图 最大幅度解决适配问题,并且最大化方便开发者。 From d0045f33d2a944bebbc07ab3d54a1c19b9d2963b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=B8=BF=E6=B4=8B?= <623565791@qq.com> Date: Mon, 26 Nov 2018 21:24:37 +0800 Subject: [PATCH 9/9] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8de9cd0..aa40659 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ 非常感谢 : 吃土豆的人 的协作。 +>推荐使用[AndroidAutoSize](https://github.com/JessYanCoding/AndroidAutoSize) AndroidAutoSize目前作者一直在维护,私下也有一些交流,也是 AndroidAutoLayout 3年的使用者,自研了[AndroidAutoSize](https://github.com/JessYanCoding/AndroidAutoSize), 在目前本库已经没有精力维护的情况下,推荐使用;如果使用了本库,迁移成本也非常低,[迁移指南](https://github.com/JessYanCoding/AndroidAutoSize/issues/90)。