Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
android-mvp-flytour-kotlin
提交
2232d7db
A
android-mvp-flytour-kotlin
项目概览
门心叼龙
/
android-mvp-flytour-kotlin
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
android-mvp-flytour-kotlin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2232d7db
编写于
2月 20, 2020
作者:
门心叼龙
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
code perfect
上级
34eb7215
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
206 addition
and
109 deletion
+206
-109
lib_fly_db/src/main/java/com/fly/tour/db/dao/NewsDetailDao.kt
...fly_db/src/main/java/com/fly/tour/db/dao/NewsDetailDao.kt
+3
-5
lib_refresh_layout/src/main/java/com/refresh/lib/BaseRefreshLayout.kt
...layout/src/main/java/com/refresh/lib/BaseRefreshLayout.kt
+1
-1
lib_refresh_layout/src/main/java/com/refresh/lib/DaisyFooterView.kt
...h_layout/src/main/java/com/refresh/lib/DaisyFooterView.kt
+11
-11
lib_refresh_layout/src/main/java/com/refresh/lib/DaisyHeaderView.kt
...h_layout/src/main/java/com/refresh/lib/DaisyHeaderView.kt
+11
-11
lib_refresh_layout/src/main/java/com/refresh/lib/DaisyRefreshLayout.kt
...ayout/src/main/java/com/refresh/lib/DaisyRefreshLayout.kt
+5
-2
lib_refresh_layout/src/main/java/com/refresh/lib/contract/PullContract.kt
...ut/src/main/java/com/refresh/lib/contract/PullContract.kt
+1
-1
lib_refresh_layout/src/main/java/com/refresh/lib/contract/PushContract.kt
...ut/src/main/java/com/refresh/lib/contract/PushContract.kt
+1
-1
module_me/src/main/java/com/fly/tour/me/model/NewsDetailAddModel.kt
...src/main/java/com/fly/tour/me/model/NewsDetailAddModel.kt
+1
-1
module_me/src/main/java/com/fly/tour/me/model/NewsTypeAddModel.kt
...e/src/main/java/com/fly/tour/me/model/NewsTypeAddModel.kt
+1
-1
module_me/src/main/java/com/fly/tour/me/model/NewsTypeListModel.kt
.../src/main/java/com/fly/tour/me/model/NewsTypeListModel.kt
+1
-1
module_news/src/main/java/com/fly/tour/news/model/NewsDetailModel.kt
.../src/main/java/com/fly/tour/news/model/NewsDetailModel.kt
+1
-8
module_news/src/main/java/com/fly/tour/news/model/NewsListModel.kt
...ws/src/main/java/com/fly/tour/news/model/NewsListModel.kt
+1
-8
module_test/src/main/java/com/fly/tour/test/MainActivity.kt
module_test/src/main/java/com/fly/tour/test/MainActivity.kt
+7
-0
module_test/src/main/java/com/fly/tour/test/Test.java
module_test/src/main/java/com/fly/tour/test/Test.java
+0
-17
module_test/src/main/java/com/fly/tour/test/Test1.kt
module_test/src/main/java/com/fly/tour/test/Test1.kt
+0
-25
module_test/src/main/java/com/fly/tour/test/view/MyView.kt
module_test/src/main/java/com/fly/tour/test/view/MyView.kt
+20
-0
module_test/src/main/java/com/fly/tour/test/view/MyView1.kt
module_test/src/main/java/com/fly/tour/test/view/MyView1.kt
+18
-0
module_test/src/main/java/com/fly/tour/test/view/MyView2.kt
module_test/src/main/java/com/fly/tour/test/view/MyView2.kt
+29
-0
module_test/src/main/java/com/fly/tour/test/view/Person.kt
module_test/src/main/java/com/fly/tour/test/view/Person.kt
+13
-0
module_test/src/main/java/com/fly/tour/test/view/Person1.java
...le_test/src/main/java/com/fly/tour/test/view/Person1.java
+18
-0
module_test/src/main/java/com/fly/tour/test/view/java/MyView.java
...est/src/main/java/com/fly/tour/test/view/java/MyView.java
+28
-0
module_test/src/main/java/com/fly/tour/test/view/java/MyView1.java
...st/src/main/java/com/fly/tour/test/view/java/MyView1.java
+28
-0
module_test/src/main/res/layout/activity_main.xml
module_test/src/main/res/layout/activity_main.xml
+7
-16
未找到文件。
lib_fly_db/src/main/java/com/fly/tour/db/dao/NewsDetailDao.kt
浏览文件 @
2232d7db
...
...
@@ -20,7 +20,9 @@ import java.util.ArrayList
*/
class
NewsDetailDao
(
context
:
Context
)
{
private
val
mDatabase
:
SQLiteDatabase
init
{
mDatabase
=
NewsDBHelper
.
getInstance
(
context
)
!!
.
readableDatabase
}
val
isEmpty
:
Boolean
get
()
{
val
sql
=
"select * from "
+
NewsDBConfig
.
NewsDetail
.
TABLE_NAME
...
...
@@ -30,10 +32,6 @@ class NewsDetailDao(context: Context) {
}
else
true
}
init
{
mDatabase
=
NewsDBHelper
.
getInstance
(
context
)
!!
.
readableDatabase
}
fun
addNewsDetail
(
type
:
Int
,
title
:
String
,
content
:
String
):
Boolean
{
val
values
=
ContentValues
()
values
.
put
(
NewsDBConfig
.
NewsDetail
.
CLUMN_TYPE_ID
,
type
)
...
...
lib_refresh_layout/src/main/java/com/refresh/lib/BaseRefreshLayout.kt
浏览文件 @
2232d7db
...
...
@@ -16,7 +16,7 @@ abstract class BaseRefreshLayout(context: Context, attrs: AttributeSet) : SuperS
private
var
isEnableLoadMore
=
true
//是否启用上拉加载更多
protected
lateinit
var
mOnRefreshListener
:
OnRefreshListener
//下拉刷新监听器
protected
lateinit
var
mOnLoadMoreListener
:
OnLoadMoreListener
//上拉加载更多监听器
protected
var
mOnAutoLoadListener
:
OnAutoLoadListener
?
=
null
//自动加载的回调
protected
lateinit
var
mOnAutoLoadListener
:
OnAutoLoadListener
//自动加载的回调
interface
OnRefreshListener
{
fun
onRefresh
()
...
...
lib_refresh_layout/src/main/java/com/refresh/lib/DaisyFooterView.kt
浏览文件 @
2232d7db
...
...
@@ -24,9 +24,9 @@ import com.refresh.lib.contract.PushContract
</DaisyHeaderView> */
class
DaisyFooterView
@JvmOverloads
constructor
(
context
:
Context
,
attrs
:
AttributeSet
?
=
null
)
:
RelativeLayout
(
context
,
attrs
),
PushContract
{
private
var
mTxtLoading
:
TextView
?
=
null
private
var
mImgDaisy
:
ImageView
?
=
null
private
var
mRotation
:
ObjectAnimator
?
=
null
private
lateinit
var
mTxtLoading
:
TextView
private
lateinit
var
mImgDaisy
:
ImageView
private
lateinit
var
mRotation
:
ObjectAnimator
init
{
initView
(
context
)
...
...
@@ -36,29 +36,29 @@ class DaisyFooterView @JvmOverloads constructor(context: Context, attrs: Attribu
fun
initView
(
context
:
Context
)
{
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
layout_daisy
,
this
)
mTxtLoading
=
findViewById
(
R
.
id
.
txt_loading
)
mTxtLoading
!!
.
text
=
"上拉加载更多..."
mTxtLoading
.
text
=
"上拉加载更多..."
mImgDaisy
=
findViewById
(
R
.
id
.
img_daisy
)
mRotation
=
ObjectAnimator
.
ofFloat
(
mImgDaisy
,
"rotation"
,
0f
,
360f
).
setDuration
(
800
)
mRotation
!!
.
repeatCount
=
ValueAnimator
.
INFINITE
mRotation
!!
.
interpolator
=
LinearInterpolator
()
mRotation
.
repeatCount
=
ValueAnimator
.
INFINITE
mRotation
.
interpolator
=
LinearInterpolator
()
}
override
fun
onPushEnable
(
enable
:
Boolean
)
{
mTxtLoading
!!
.
text
=
if
(
enable
)
"松开加载"
else
"上拉加载"
mTxtLoading
.
text
=
if
(
enable
)
"松开加载"
else
"上拉加载"
}
override
fun
onLoadMore
()
{
mTxtLoading
!!
.
text
=
"正在加载..."
mRotation
!!
.
start
()
mTxtLoading
.
text
=
"正在加载..."
mRotation
.
start
()
}
@RequiresApi
(
Build
.
VERSION_CODES
.
KITKAT
)
fun
setLoadMore
(
b
:
Boolean
)
{
if
(
b
)
{
mRotation
!!
.
start
()
mRotation
.
start
()
}
else
{
mRotation
!!
.
pause
()
mRotation
.
pause
()
}
}
}
lib_refresh_layout/src/main/java/com/refresh/lib/DaisyHeaderView.kt
浏览文件 @
2232d7db
...
...
@@ -22,9 +22,9 @@ import com.refresh.lib.contract.PullContract
</DaisyHeaderView> */
class
DaisyHeaderView
@JvmOverloads
constructor
(
context
:
Context
,
attrs
:
AttributeSet
?
=
null
)
:
RelativeLayout
(
context
,
attrs
),
PullContract
{
private
var
mTxtLoading
:
TextView
?
=
null
private
var
mImgDaisy
:
ImageView
?
=
null
private
var
mRotation
:
ObjectAnimator
?
=
null
private
lateinit
var
mTxtLoading
:
TextView
private
lateinit
var
mImgDaisy
:
ImageView
private
lateinit
var
mRotation
:
ObjectAnimator
init
{
initView
(
context
)
...
...
@@ -34,29 +34,29 @@ class DaisyHeaderView @JvmOverloads constructor(context: Context, attrs: Attribu
fun
initView
(
context
:
Context
)
{
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
layout_daisy
,
this
)
mTxtLoading
=
findViewById
(
R
.
id
.
txt_loading
)
mTxtLoading
!!
.
text
=
"下拉刷新"
mTxtLoading
.
text
=
"下拉刷新"
mImgDaisy
=
findViewById
(
R
.
id
.
img_daisy
)
mRotation
=
ObjectAnimator
.
ofFloat
(
mImgDaisy
,
"rotation"
,
0f
,
360f
).
setDuration
(
800
)
mRotation
!!
.
repeatCount
=
ValueAnimator
.
INFINITE
mRotation
!!
.
interpolator
=
LinearInterpolator
()
mRotation
.
repeatCount
=
ValueAnimator
.
INFINITE
mRotation
.
interpolator
=
LinearInterpolator
()
}
override
fun
onPullEnable
(
enable
:
Boolean
)
{
mTxtLoading
!!
.
text
=
if
(
enable
)
"松开刷新"
else
"下拉刷新"
mTxtLoading
.
text
=
if
(
enable
)
"松开刷新"
else
"下拉刷新"
}
override
fun
onRefresh
()
{
mTxtLoading
!!
.
text
=
"正在刷新"
mRotation
!!
.
start
()
mTxtLoading
.
text
=
"正在刷新"
mRotation
.
start
()
}
fun
setRefreshing
(
b
:
Boolean
)
{
if
(
b
)
{
mRotation
!!
.
start
()
mRotation
.
start
()
}
else
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
KITKAT
)
{
mRotation
!!
.
pause
()
mRotation
.
pause
()
}
}
}
...
...
lib_refresh_layout/src/main/java/com/refresh/lib/DaisyRefreshLayout.kt
浏览文件 @
2232d7db
package
com.refresh.lib
import
android.content.Context
import
android.os.Build
import
android.util.AttributeSet
import
androidx.annotation.RequiresApi
/**
* Description: <小菊花样式的刷新控件><br>
...
...
@@ -9,10 +11,10 @@ import android.util.AttributeSet
* Date: 2019/2/25<br>
* Version: V1.0.0<br>
* Update: <br>
</小菊花样式的刷新控件>
*/
*/
class
DaisyRefreshLayout
(
context
:
Context
,
attrs
:
AttributeSet
)
:
BaseRefreshLayout
(
context
,
attrs
)
{
private
val
mDaisyHeaderView
:
DaisyHeaderView
?
private
val
mDaisyHeaderView
:
DaisyHeaderView
private
val
mDaisyFooterView
:
DaisyFooterView
override
var
isRefreshing
:
Boolean
get
()
=
super
.
isRefreshing
...
...
@@ -60,6 +62,7 @@ class DaisyRefreshLayout(context: Context, attrs: AttributeSet) :
mDaisyHeaderView
?.
onRefresh
()
}
@RequiresApi
(
Build
.
VERSION_CODES
.
KITKAT
)
override
fun
setLoadMore
(
loadMore
:
Boolean
)
{
mDaisyFooterView
.
setLoadMore
(
loadMore
)
super
.
setLoadMore
(
loadMore
)
...
...
lib_refresh_layout/src/main/java/com/refresh/lib/contract/PullContract.kt
浏览文件 @
2232d7db
...
...
@@ -6,7 +6,7 @@ package com.refresh.lib.contract
* Date: 2019/2/25<br>
* Version: V1.0.0<br>
* Update: <br>
</下拉刷新的协议>
*/
*/
interface
PullContract
{
/**
* 手指上滑下滑的回调
...
...
lib_refresh_layout/src/main/java/com/refresh/lib/contract/PushContract.kt
浏览文件 @
2232d7db
...
...
@@ -6,7 +6,7 @@ package com.refresh.lib.contract
* Date: 2019/2/25<br>
* Version: V1.0.0<br>
* Update: <br>
</上拉加载更多的协议>
*/
*/
interface
PushContract
{
/**
* 手指上滑下滑的回调
...
...
module_me/src/main/java/com/fly/tour/me/model/NewsDetailAddModel.kt
浏览文件 @
2232d7db
...
...
@@ -13,7 +13,7 @@ import com.fly.tour.me.contract.NewsDetailAddContract
* Update: <br>
*/
class
NewsDetailAddModel
(
content
:
Context
)
:
BaseModel
(
content
),
NewsDetailAddContract
.
Model
{
var
mNewsDetailDao
:
NewsDetailDao
=
NewsDetailDao
(
context
)
private
val
mNewsDetailDao
:
NewsDetailDao
by
lazy
{
NewsDetailDao
(
context
)
}
override
fun
addNewsDetail
(
type
:
Int
,
title
:
String
,
content
:
String
):
Boolean
{
return
mNewsDetailDao
.
addNewsDetail
(
type
,
title
,
content
)
}
...
...
module_me/src/main/java/com/fly/tour/me/model/NewsTypeAddModel.kt
浏览文件 @
2232d7db
...
...
@@ -13,7 +13,7 @@ import com.fly.tour.me.contract.NewsTypeAddContract
* Update: <br>
*/
class
NewsTypeAddModel
(
context
:
Context
)
:
BaseModel
(
context
),
NewsTypeAddContract
.
Model
{
var
mNewsTypeDao
:
NewsTypeDao
=
NewsTypeDao
(
context
)
private
val
mNewsTypeDao
:
NewsTypeDao
by
lazy
{
NewsTypeDao
(
context
)
}
override
fun
addNewsType
(
type
:
String
):
Boolean
{
return
mNewsTypeDao
.
addNewsType
(
type
)
}
...
...
module_me/src/main/java/com/fly/tour/me/model/NewsTypeListModel.kt
浏览文件 @
2232d7db
...
...
@@ -14,7 +14,7 @@ import com.fly.tour.me.contract.NewsTypeListContract
* Update: <br>
*/
class
NewsTypeListModel
(
context
:
Context
)
:
BaseModel
(
context
),
NewsTypeListContract
.
Model
{
private
va
r
mNewsTypeDao
:
NewsTypeDao
=
NewsTypeDao
(
context
)
private
va
l
mNewsTypeDao
:
NewsTypeDao
by
lazy
{
NewsTypeDao
(
context
)
}
override
fun
getListNewsType
():
List
<
NewsType
>?
{
return
mNewsTypeDao
.
getListNewsType
()
}
...
...
module_news/src/main/java/com/fly/tour/news/model/NewsDetailModel.kt
浏览文件 @
2232d7db
...
...
@@ -6,13 +6,6 @@ import com.fly.tour.db.dao.NewsDetailDao
import
com.fly.tour.db.entity.NewsDetail
import
com.fly.tour.news.contract.NewsDetailContract
/**
* Description: <NewsDetailModel><br>
* Author: mxdl<br>
* Date: 2020/2/17<br>
* Version: V1.0.0<br>
* Update: <br>
*/
/**
* Description: <NewsDetailModel><br>
* Author: mxdl<br>
...
...
@@ -21,7 +14,7 @@ import com.fly.tour.news.contract.NewsDetailContract
* Update: <br>
*/
class
NewsDetailModel
(
context
:
Context
)
:
BaseModel
(
context
),
NewsDetailContract
.
Model
{
private
va
r
mNewsDetailDao
:
NewsDetailDao
=
NewsDetailDao
(
context
)
private
va
l
mNewsDetailDao
:
NewsDetailDao
by
lazy
{
NewsDetailDao
(
context
)
}
override
fun
getNewsDetailById
(
id
:
Int
):
NewsDetail
?
{
return
mNewsDetailDao
.
getNewsDetailById
(
id
)
}
...
...
module_news/src/main/java/com/fly/tour/news/model/NewsListModel.kt
浏览文件 @
2232d7db
...
...
@@ -6,13 +6,6 @@ import com.fly.tour.db.dao.NewsDetailDao
import
com.fly.tour.db.entity.NewsDetail
import
com.fly.tour.news.contract.NewsListContract
/**
* Description: <NewsListModel><br>
* Author: mxdl<br>
* Date: 2020/2/16<br>
* Version: V1.0.0<br>
* Update: <br>
*/
/**
* Description: <NewsListModel><br>
* Author: mxdl<br>
...
...
@@ -21,7 +14,7 @@ import com.fly.tour.news.contract.NewsListContract
* Update: <br>
*/
class
NewsListModel
(
context
:
Context
)
:
BaseModel
(
context
),
NewsListContract
.
Model
{
private
va
r
mDetailDao
=
NewsDetailDao
(
context
)
private
va
l
mDetailDao
by
lazy
{
NewsDetailDao
(
context
)}
override
fun
getListNewsByType
(
type
:
Int
):
List
<
NewsDetail
>?
{
return
mDetailDao
.
getListNewsByType
(
type
)
}
...
...
module_test/src/main/java/com/fly/tour/test/MainActivity.kt
浏览文件 @
2232d7db
...
...
@@ -2,11 +2,18 @@ package com.fly.tour.test
import
androidx.appcompat.app.AppCompatActivity
import
android.os.Bundle
import
com.fly.tour.test.view.MyView2
import
com.fly.tour.test.view.Person1
import
kotlinx.android.synthetic.main.activity_main.*
class
MainActivity
:
AppCompatActivity
()
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
setContentView
(
R
.
layout
.
activity_main
)
btn
.
setOnClickListener
{
//view.test()
}
}
}
module_test/src/main/java/com/fly/tour/test/Test.java
已删除
100644 → 0
浏览文件 @
34eb7215
package
com.fly.tour.test
;
import
com.fly.tour.common.util.ToastUtil
;
/**
* Description: <Test><br>
* Author: mxdl<br>
* Date: 2020/2/19<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
Test
{
public
static
void
main
(
String
[]
args
)
{
ToastUtil
.
INSTANCE
.
showToast
(
"ok"
);
//System.out.println("ok");
}
}
module_test/src/main/java/com/fly/tour/test/Test1.kt
已删除
100644 → 0
浏览文件 @
34eb7215
package
com.fly.tour.test
import
com.fly.tour.common.util.ToastUtil
/**
* Description: <Test1><br>
* Author: mxdl<br>
* Date: 2020/2/19<br>
* Version: V1.0.0<br>
* Update: <br>
*/
/**
* Description: <Test1><br>
* Author: mxdl<br>
* Date: 2020/2/19<br>
* Version: V1.0.0<br>
* Update: <br>
*/
class
Test1
{
}
fun
main
(
args
:
Array
<
String
>)
{
ToastUtil
.
showToast
(
"ok"
)
}
\ No newline at end of file
module_test/src/main/java/com/fly/tour/test/view/MyView.kt
0 → 100644
浏览文件 @
2232d7db
package
com.fly.tour.test.view
import
android.content.Context
import
android.util.AttributeSet
import
android.view.View
/**
* Description: <MyView><br></br>
* Author: mxdl<br></br>
* Date: 2020/2/20<br></br>
* Version: V1.0.0<br></br>
* Update: <br></br>
</MyView> */
class
MyView
:
View
{
constructor
(
context
:
Context
)
:
super
(
context
)
{}
constructor
(
context
:
Context
,
attrs
:
AttributeSet
?)
:
super
(
context
,
attrs
)
{}
constructor
(
context
:
Context
,
attrs
:
AttributeSet
?,
defStyleAttr
:
Int
)
:
super
(
context
,
attrs
,
defStyleAttr
)
{}
}
module_test/src/main/java/com/fly/tour/test/view/MyView1.kt
0 → 100644
浏览文件 @
2232d7db
package
com.fly.tour.test.view
import
android.content.Context
import
android.util.AttributeSet
import
android.view.View
/**
* Description: <MyView><br></br>
* Author: mxdl<br></br>
* Date: 2020/2/20<br></br>
* Version: V1.0.0<br></br>
* Update: <br></br>
</MyView> */
class
MyView1
@JvmOverloads
constructor
(
context
:
Context
,
attrs
:
AttributeSet
?
=
null
,
defStyleAttr
:
Int
=
0
)
:
View
(
context
,
attrs
,
defStyleAttr
)
module_test/src/main/java/com/fly/tour/test/view/MyView2.kt
0 → 100644
浏览文件 @
2232d7db
package
com.fly.tour.test.view
import
android.content.Context
import
android.util.AttributeSet
import
android.view.View
/**
* Description: <MyView><br></br>
* Author: mxdl<br></br>
* Date: 2020/2/20<br></br>
* Version: V1.0.0<br></br>
* Update: <br></br>
</MyView> */
class
MyView2
:
View
{
init
{
println
(
"MyView2 init"
)
}
@JvmOverloads
constructor
(
context
:
Context
,
attrs
:
AttributeSet
?
=
null
,
defStyleAttr
:
Int
=
0
)
:
super
(
context
,
attrs
,
defStyleAttr
){
println
(
"MyView2 constructor"
)
}
fun
test
(){
println
(
"Hello World!"
)
}
}
module_test/src/main/java/com/fly/tour/test/view/Person.kt
0 → 100644
浏览文件 @
2232d7db
package
com.fly.tour.test.view
/**
* Description: <Person1><br>
* Author: mxdl<br>
* Date: 2020/2/20<br>
* Version: V1.0.0<br>
* Update: <br>
*/
class
Person
{
var
username
:
String
?
=
null
var
age
:
Int
=
16
}
\ No newline at end of file
module_test/src/main/java/com/fly/tour/test/view/Person1.java
0 → 100644
浏览文件 @
2232d7db
package
com.fly.tour.test.view
;
/**
* Description: <Person1><br>
* Author: mxdl<br>
* Date: 2020/2/20<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
Person1
{
int
age
;
String
name
;
public
Person1
(
int
age
,
String
name
)
{
this
.
age
=
age
;
this
.
name
=
name
;
}
}
module_test/src/main/java/com/fly/tour/test/view/java/MyView.java
0 → 100644
浏览文件 @
2232d7db
package
com.fly.tour.test.view.java
;
import
android.content.Context
;
import
android.util.AttributeSet
;
import
android.view.View
;
import
androidx.annotation.Nullable
;
/**
* Description: <MyView><br>
* Author: mxdl<br>
* Date: 2020/2/20<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
MyView
extends
View
{
public
MyView
(
Context
context
)
{
super
(
context
);
}
public
MyView
(
Context
context
,
@Nullable
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
}
public
MyView
(
Context
context
,
@Nullable
AttributeSet
attrs
,
int
defStyleAttr
)
{
super
(
context
,
attrs
,
defStyleAttr
);
}
}
module_test/src/main/java/com/fly/tour/test/view/java/MyView1.java
0 → 100644
浏览文件 @
2232d7db
package
com.fly.tour.test.view.java
;
import
android.content.Context
;
import
android.util.AttributeSet
;
import
android.view.View
;
import
androidx.annotation.Nullable
;
/**
* Description: <MyView><br>
* Author: mxdl<br>
* Date: 2020/2/20<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
MyView1
extends
View
{
public
MyView1
(
Context
context
)
{
this
(
context
,
null
);
}
public
MyView1
(
Context
context
,
@Nullable
AttributeSet
attrs
)
{
this
(
context
,
attrs
,
0
);
}
public
MyView1
(
Context
context
,
@Nullable
AttributeSet
attrs
,
int
defStyleAttr
)
{
super
(
context
,
attrs
,
defStyleAttr
);
}
}
module_test/src/main/res/layout/activity_main.xml
浏览文件 @
2232d7db
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".MainActivity"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Hello World!"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<Button
android:id=
"@+id/btn"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录