Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds-android
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
云深项目组
beyond-clouds-android
Commits
279e264c
Commit
279e264c
authored
Mar 14, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
博客列表
parent
d214ba4c
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
483 additions
and
30 deletions
+483
-30
app/build.gradle
+1
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/adapter/BlogListAdapter.java
+55
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/adapter/CategoryFragmentAdapter.java
+1
-1
app/src/main/java/cn/yunliyunwai/beyondclouds/data/model/Blog.java
+104
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/data/model/Page.java
+34
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/data/source/BlogRepositoryImpl.java
+7
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/data/source/IBlogRepository.java
+3
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/data/source/remote/BlogApiStore.java
+8
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/di/component/AppComponent.java
+4
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/di/component/BlogListFragmentComponent.java
+15
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/di/module/BlogListFragmentModuleBinds.java
+21
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/HomeFragment.java
+39
-11
app/src/main/java/cn/yunliyunwai/beyondclouds/viewmodel/BlogListFragmentViewModel.java
+41
-0
app/src/main/res/drawable/pic1.png
+0
-0
app/src/main/res/layout/beyond_search_bar.xml
+7
-1
app/src/main/res/layout/blog_item.xml
+118
-0
app/src/main/res/layout/fragment_blog_list.xml
+24
-0
app/src/main/res/layout/fragment_category.xml
+0
-17
app/src/main/res/values/colors.xml
+1
-0
No files found.
app/build.gradle
View file @
279e264c
...
...
@@ -63,4 +63,5 @@ dependencies {
annotationProcessor
'com.google.dagger:dagger-compiler:2.26'
implementation
"androidx.room:room-runtime:$room_version"
annotationProcessor
"androidx.room:room-compiler:$room_version"
implementation
'com.github.bumptech.glide:glide:3.7.0'
}
app/src/main/java/cn/yunliyunwai/beyondclouds/adapter/BlogListAdapter.java
0 → 100644
View file @
279e264c
package
cn
.
yunliyunwai
.
beyondclouds
.
adapter
;
import
android.text.TextUtils
;
import
android.view.LayoutInflater
;
import
android.view.ViewGroup
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.bumptech.glide.Glide
;
import
java.util.List
;
import
cn.yunliyunwai.beyondclouds.data.model.Blog
;
import
cn.yunliyunwai.beyondclouds.databinding.BlogItemBinding
;
public
class
BlogListAdapter
extends
RecyclerView
.
Adapter
<
BlogListAdapter
.
BlogItemViewHolder
>
{
private
List
<
Blog
>
blogList
;
public
static
class
BlogItemViewHolder
extends
RecyclerView
.
ViewHolder
{
public
BlogItemBinding
binding
;
public
BlogItemViewHolder
(
BlogItemBinding
binding
)
{
super
(
binding
.
getRoot
());
this
.
binding
=
binding
;
}
}
public
BlogListAdapter
(
List
<
Blog
>
blogList
)
{
this
.
blogList
=
blogList
;
}
@Override
public
BlogItemViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
BlogItemBinding
blogItemBinding
=
BlogItemBinding
.
inflate
(
LayoutInflater
.
from
(
parent
.
getContext
()),
parent
,
false
);
return
new
BlogItemViewHolder
(
blogItemBinding
);
}
@Override
public
void
onBindViewHolder
(
BlogItemViewHolder
holder
,
int
position
)
{
Blog
blog
=
blogList
.
get
(
position
);
BlogItemBinding
binding
=
holder
.
binding
;
binding
.
txtTitle
.
setText
(
blog
.
getBlogTitle
());
binding
.
txtAbstract
.
setText
(
blog
.
getBlogAbstract
());
if
(
null
!=
blog
.
getCover
()
&&
!
TextUtils
.
isEmpty
(
blog
.
getCover
()))
{
Glide
.
with
(
holder
.
binding
.
getRoot
().
getContext
()).
load
(
blog
.
getCover
()).
into
(
binding
.
blogCover
);
}
}
@Override
public
int
getItemCount
()
{
return
blogList
.
size
();
}
}
\ No newline at end of file
app/src/main/java/cn/yunliyunwai/beyondclouds/adapter/CategoryFragmentAdapter.java
View file @
279e264c
...
...
@@ -25,7 +25,7 @@ public class CategoryFragmentAdapter extends FragmentStatePagerAdapter {
public
Fragment
getItem
(
int
position
)
{
HomeFragment
.
BlogListFragment
fragment
=
HomeFragment
.
BlogListFragment
.
newInstance
();
Bundle
bundle
=
new
Bundle
();
bundle
.
put
String
(
"text"
,
categories
.
get
(
position
).
getCategory
());
bundle
.
put
Int
(
"categoryId"
,
categories
.
get
(
position
).
getCategoryId
());
fragment
.
setArguments
(
bundle
);
return
fragment
;
}
...
...
app/src/main/java/cn/yunliyunwai/beyondclouds/data/model/Blog.java
0 → 100644
View file @
279e264c
package
cn
.
yunliyunwai
.
beyondclouds
.
data
.
model
;
public
class
Blog
{
private
String
blogId
;
private
String
userId
;
private
String
categoryId
;
private
String
category
;
private
String
blogTitle
;
private
String
blogAbstract
;
private
String
cover
;
private
String
originLink
;
private
String
viewPrivileges
;
private
String
allowComment
;
private
String
allowForward
;
public
String
getBlogId
()
{
return
blogId
;
}
public
void
setBlogId
(
String
blogId
)
{
this
.
blogId
=
blogId
;
}
public
String
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
String
userId
)
{
this
.
userId
=
userId
;
}
public
String
getCategoryId
()
{
return
categoryId
;
}
public
void
setCategoryId
(
String
categoryId
)
{
this
.
categoryId
=
categoryId
;
}
public
String
getCategory
()
{
return
category
;
}
public
void
setCategory
(
String
category
)
{
this
.
category
=
category
;
}
public
String
getBlogTitle
()
{
return
blogTitle
;
}
public
void
setBlogTitle
(
String
blogTitle
)
{
this
.
blogTitle
=
blogTitle
;
}
public
String
getBlogAbstract
()
{
return
blogAbstract
;
}
public
void
setBlogAbstract
(
String
blogAbstract
)
{
this
.
blogAbstract
=
blogAbstract
;
}
public
String
getCover
()
{
return
cover
;
}
public
void
setCover
(
String
cover
)
{
this
.
cover
=
cover
;
}
public
String
getOriginLink
()
{
return
originLink
;
}
public
void
setOriginLink
(
String
originLink
)
{
this
.
originLink
=
originLink
;
}
public
String
getViewPrivileges
()
{
return
viewPrivileges
;
}
public
void
setViewPrivileges
(
String
viewPrivileges
)
{
this
.
viewPrivileges
=
viewPrivileges
;
}
public
String
getAllowComment
()
{
return
allowComment
;
}
public
void
setAllowComment
(
String
allowComment
)
{
this
.
allowComment
=
allowComment
;
}
public
String
getAllowForward
()
{
return
allowForward
;
}
public
void
setAllowForward
(
String
allowForward
)
{
this
.
allowForward
=
allowForward
;
}
}
app/src/main/java/cn/yunliyunwai/beyondclouds/data/model/Page.java
0 → 100644
View file @
279e264c
package
cn
.
yunliyunwai
.
beyondclouds
.
data
.
model
;
import
java.util.List
;
public
class
Page
<
T
>
{
private
Integer
totalPage
;
private
Integer
totalRecords
;
private
List
<
T
>
dataList
;
public
Integer
getTotalPage
()
{
return
totalPage
;
}
public
void
setTotalPage
(
Integer
totalPage
)
{
this
.
totalPage
=
totalPage
;
}
public
Integer
getTotalRecords
()
{
return
totalRecords
;
}
public
void
setTotalRecords
(
Integer
totalRecords
)
{
this
.
totalRecords
=
totalRecords
;
}
public
List
<
T
>
getDataList
()
{
return
dataList
;
}
public
void
setDataList
(
List
<
T
>
dataList
)
{
this
.
dataList
=
dataList
;
}
}
app/src/main/java/cn/yunliyunwai/beyondclouds/data/source/BlogRepositoryImpl.java
View file @
279e264c
...
...
@@ -11,7 +11,9 @@ import java.util.List;
import
javax.inject.Inject
;
import
javax.inject.Singleton
;
import
cn.yunliyunwai.beyondclouds.data.model.Blog
;
import
cn.yunliyunwai.beyondclouds.data.model.BlogCategory
;
import
cn.yunliyunwai.beyondclouds.data.model.Page
;
import
cn.yunliyunwai.beyondclouds.data.model.Result
;
import
cn.yunliyunwai.beyondclouds.data.source.local.database.BlogDatabase
;
import
cn.yunliyunwai.beyondclouds.data.source.remote.BlogApiStore
;
...
...
@@ -41,6 +43,11 @@ public class BlogRepositoryImpl implements IBlogRepository {
}
@Override
public
LiveData
<
Result
<
Page
<
Blog
>>>
getBlogList
(
Integer
categoryId
,
Integer
page
,
Integer
size
)
{
return
blogApiStore
.
getBlogList
(
categoryId
,
page
,
size
);
}
@Override
public
void
saveCategories
(
List
<
BlogCategory
>
categories
)
{
blogDatabase
.
blogDao
().
saveCategories
(
categories
);
}
...
...
app/src/main/java/cn/yunliyunwai/beyondclouds/data/source/IBlogRepository.java
View file @
279e264c
...
...
@@ -4,7 +4,9 @@ import androidx.lifecycle.LiveData;
import
java.util.List
;
import
cn.yunliyunwai.beyondclouds.data.model.Blog
;
import
cn.yunliyunwai.beyondclouds.data.model.BlogCategory
;
import
cn.yunliyunwai.beyondclouds.data.model.Page
;
import
cn.yunliyunwai.beyondclouds.data.model.Result
;
public
interface
IBlogRepository
{
...
...
@@ -17,5 +19,6 @@ public interface IBlogRepository {
LiveData
<
List
<
BlogCategory
>>
loadCategoriesFromLocal
();
LiveData
<
Result
<
Page
<
Blog
>>>
getBlogList
(
Integer
categoryId
,
Integer
page
,
Integer
size
);
void
saveCategories
(
List
<
BlogCategory
>
data
);
}
app/src/main/java/cn/yunliyunwai/beyondclouds/data/source/remote/BlogApiStore.java
View file @
279e264c
...
...
@@ -4,11 +4,19 @@ import androidx.lifecycle.LiveData;
import
java.util.List
;
import
cn.yunliyunwai.beyondclouds.data.model.Blog
;
import
cn.yunliyunwai.beyondclouds.data.model.BlogCategory
;
import
cn.yunliyunwai.beyondclouds.data.model.Page
;
import
cn.yunliyunwai.beyondclouds.data.model.Result
;
import
retrofit2.http.GET
;
import
retrofit2.http.Query
;
public
interface
BlogApiStore
{
@GET
(
"blog/categories"
)
LiveData
<
Result
<
List
<
BlogCategory
>>>
getCategories
();
@GET
(
"blogs"
)
LiveData
<
Result
<
Page
<
Blog
>>>
getBlogList
(
@Query
(
"categoryId"
)
Integer
categoryId
,
@Query
(
"page"
)
Integer
page
,
@Query
(
"size"
)
Integer
size
);
}
app/src/main/java/cn/yunliyunwai/beyondclouds/di/component/AppComponent.java
View file @
279e264c
...
...
@@ -7,6 +7,7 @@ import javax.inject.Singleton;
import
cn.yunliyunwai.beyondclouds.MainActivity
;
import
cn.yunliyunwai.beyondclouds.di.module.AppModule
;
import
cn.yunliyunwai.beyondclouds.di.module.AppModuleBinds
;
import
cn.yunliyunwai.beyondclouds.di.module.BlogListFragmentModuleBinds
;
import
cn.yunliyunwai.beyondclouds.di.module.HomeFragmentModuleBinds
;
import
cn.yunliyunwai.beyondclouds.di.module.SplashActivityModuleBinds
;
import
cn.yunliyunwai.beyondclouds.di.module.ViewModelFactory
;
...
...
@@ -19,6 +20,7 @@ import dagger.Component;
AppModuleBinds
.
class
,
ViewModelFactory
.
ViewModelBuilderModule
.
class
,
HomeFragmentModuleBinds
.
class
,
BlogListFragmentModuleBinds
.
class
,
SplashActivityModuleBinds
.
class
})
public
interface
AppComponent
{
...
...
@@ -32,6 +34,8 @@ public interface AppComponent {
SplashActivityComponent
.
Factory
splashActivityComponent
();
BlogListFragmentComponent
.
Factory
blogListFragmentComponent
();
void
inject
(
MainActivity
mainActivity
);
}
app/src/main/java/cn/yunliyunwai/beyondclouds/di/component/BlogListFragmentComponent.java
0 → 100644
View file @
279e264c
package
cn
.
yunliyunwai
.
beyondclouds
.
di
.
component
;
import
cn.yunliyunwai.beyondclouds.ui.HomeFragment
;
import
dagger.Subcomponent
;
@Subcomponent
public
interface
BlogListFragmentComponent
{
@Subcomponent
.
Factory
interface
Factory
{
BlogListFragmentComponent
create
();
}
void
inject
(
HomeFragment
.
BlogListFragment
blogListFragment
);
}
app/src/main/java/cn/yunliyunwai/beyondclouds/di/module/BlogListFragmentModuleBinds.java
0 → 100644
View file @
279e264c
package
cn
.
yunliyunwai
.
beyondclouds
.
di
.
module
;
import
androidx.lifecycle.ViewModel
;
import
cn.yunliyunwai.beyondclouds.di.component.BlogListFragmentComponent
;
import
cn.yunliyunwai.beyondclouds.di.component.HomeFragmentComponent
;
import
cn.yunliyunwai.beyondclouds.viewmodel.BlogListFragmentViewModel
;
import
cn.yunliyunwai.beyondclouds.viewmodel.HomeFragmentViewModel
;
import
dagger.Binds
;
import
dagger.Module
;
import
dagger.multibindings.IntoMap
;
@Module
(
subcomponents
=
BlogListFragmentComponent
.
class
)
public
abstract
class
BlogListFragmentModuleBinds
{
@Binds
@IntoMap
@ViewModelFactory
.
ViewModelKey
(
BlogListFragmentViewModel
.
class
)
abstract
ViewModel
bindBlogListFragmentViewModel
(
BlogListFragmentViewModel
blogListFragmentViewModel
);
}
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/HomeFragment.java
View file @
279e264c
...
...
@@ -9,21 +9,28 @@ import android.widget.Toast;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.
fragment.app.Fragment
;
import
androidx.
lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
net.lucode.hackware.magicindicator.ViewPagerHelper
;
import
net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator
;
import
java.util.List
;
import
javax.inject.Inject
;
import
cn.yunliyunwai.beyondclouds.BeyondApplication
;
import
cn.yunliyunwai.beyondclouds.R
;
import
cn.yunliyunwai.beyondclouds.adapter.BlogListAdapter
;
import
cn.yunliyunwai.beyondclouds.adapter.CategoryFragmentAdapter
;
import
cn.yunliyunwai.beyondclouds.adapter.HomeNavigatorAdapter
;
import
cn.yunliyunwai.beyondclouds.base.BaseFragment
;
import
cn.yunliyunwai.beyondclouds.databinding.FragmentCategoryBinding
;
import
cn.yunliyunwai.beyondclouds.data.model.Blog
;
import
cn.yunliyunwai.beyondclouds.databinding.FragmentBlogListBinding
;
import
cn.yunliyunwai.beyondclouds.databinding.FragmentHomeBinding
;
import
cn.yunliyunwai.beyondclouds.util.ContextUtils
;
import
cn.yunliyunwai.beyondclouds.viewmodel.BlogListFragmentViewModel
;
import
cn.yunliyunwai.beyondclouds.viewmodel.HomeFragmentViewModel
;
public
class
HomeFragment
extends
BaseFragment
<
HomeFragmentViewModel
,
FragmentHomeBinding
>
{
...
...
@@ -78,10 +85,12 @@ public class HomeFragment extends BaseFragment<HomeFragmentViewModel, FragmentHo
}
public
static
class
BlogListFragment
extends
Fragment
{
public
static
class
BlogListFragment
extends
BaseFragment
<
BlogListFragmentViewModel
,
FragmentBlogListBinding
>
{
private
Integer
categoryId
;
private
FragmentCategoryBinding
binding
;
private
String
text
;
@Inject
ViewModelProvider
.
Factory
factory
;
public
static
BlogListFragment
newInstance
()
{
return
new
BlogListFragment
();
...
...
@@ -92,21 +101,40 @@ public class HomeFragment extends BaseFragment<HomeFragmentViewModel, FragmentHo
super
.
onCreate
(
savedInstanceState
);
if
(
null
!=
getArguments
())
{
text
=
getArguments
().
getString
(
"text
"
);
categoryId
=
getArguments
().
getInt
(
"categoryId
"
);
}
}
@Nullable
@Override
public
View
onCreateView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
binding
=
FragmentCategoryBinding
.
inflate
(
inflater
,
container
,
false
);
return
binding
.
getRoot
();
protected
void
initInject
()
{
ContextUtils
.
getAppComponent
(
requireActivity
()).
blogListFragmentComponent
().
create
().
inject
(
this
);
}
@Override
protected
BlogListFragmentViewModel
initViewModel
()
{
return
new
ViewModelProvider
(
this
,
factory
).
get
(
BlogListFragmentViewModel
.
class
);
}
@Override
protected
FragmentBlogListBinding
initDataBinding
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
)
{
return
FragmentBlogListBinding
.
inflate
(
inflater
,
container
,
false
);
}
@Override
public
void
onViewCreated
(
@NonNull
View
view
,
@Nullable
Bundle
savedInstanceState
)
{
super
.
onViewCreated
(
view
,
savedInstanceState
);
binding
.
txtCategory
.
setText
(
text
);
binding
.
blogRecyclerView
.
setHasFixedSize
(
true
);
binding
.
blogRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
requireContext
()));
binding
.
getViewModel
().
getBlogList
().
observe
(
this
,
new
Observer
<
List
<
Blog
>>()
{
@Override
public
void
onChanged
(
List
<
Blog
>
blogs
)
{
binding
.
blogRecyclerView
.
setAdapter
(
new
BlogListAdapter
(
blogs
));
}
});
binding
.
getViewModel
().
loadBlogList
(
categoryId
);
}
}
}
app/src/main/java/cn/yunliyunwai/beyondclouds/viewmodel/BlogListFragmentViewModel.java
0 → 100644
View file @
279e264c
package
cn
.
yunliyunwai
.
beyondclouds
.
viewmodel
;
import
androidx.lifecycle.LiveData
;
import
androidx.lifecycle.MutableLiveData
;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModel
;
import
java.util.List
;
import
javax.inject.Inject
;
import
cn.yunliyunwai.beyondclouds.data.model.Blog
;
import
cn.yunliyunwai.beyondclouds.data.model.Page
;
import
cn.yunliyunwai.beyondclouds.data.model.Result
;
import
cn.yunliyunwai.beyondclouds.data.source.IBlogRepository
;
public
class
BlogListFragmentViewModel
extends
ViewModel
{
private
IBlogRepository
blogRepository
;
private
MutableLiveData
<
List
<
Blog
>>
blogList
=
new
MutableLiveData
<>();
public
LiveData
<
List
<
Blog
>>
getBlogList
()
{
return
blogList
;
}
@Inject
public
BlogListFragmentViewModel
(
IBlogRepository
blogRepository
)
{
this
.
blogRepository
=
blogRepository
;
}
public
void
loadBlogList
(
Integer
categoryId
)
{
blogRepository
.
getBlogList
(
categoryId
,
0
,
10
).
observeForever
(
new
Observer
<
Result
<
Page
<
Blog
>>>()
{
@Override
public
void
onChanged
(
Result
<
Page
<
Blog
>>
pageResult
)
{
if
(
pageResult
.
getCode
()
==
0
)
{
blogList
.
setValue
(
pageResult
.
getData
().
getDataList
());
}
}
});
}
}
app/src/main/res/drawable/pic1.png
0 → 100644
View file @
279e264c
13.6 KB
app/src/main/res/layout/beyond_search_bar.xml
View file @
279e264c
...
...
@@ -50,7 +50,12 @@
android:layout_marginEnd=
"14dp"
android:layout_marginRight=
"14dp"
android:textSize=
"16dp"
android:textColor=
"@color/color
Primar
y"
android:textColor=
"@color/color
Gra
y"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
<View
app:layout_constraintBottom_toBottomOf=
"parent"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
android:background=
"#efefef"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/blog_item.xml
0 → 100644
View file @
279e264c
<?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"
android:layout_height=
"wrap_content"
android:background=
"@color/colorWhite"
android:paddingStart=
"12dp"
android:paddingLeft=
"12dp"
android:paddingTop=
"16dp"
android:paddingEnd=
"12dp"
android:paddingRight=
"12dp"
>
<TextView
android:id=
"@+id/txt_title"
android:layout_width=
"wrap_content"
android:layout_height=
"22dp"
android:text=
"SpringBoot迭代发布JRA瘦身配置"
android:textSize=
"15sp"
android:textColor=
"@color/colorTextAccent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.constraintlayout.widget.Barrier
android:id=
"@+id/barrier_title"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:barrierDirection=
"bottom"
app:constraint_referenced_ids=
"txt_title"
tools:layout_editor_absoluteX=
"12dp"
tools:layout_editor_absoluteY=
"16dp"
/>
<TextView
android:id=
"@+id/txt_abstract"
android:layout_marginTop=
"10dp"
android:layout_width=
"0dp"
android:layout_height=
"55dp"
android:textSize=
"13sp"
android:text=
"我们所处的时代我们所处的时代我们所处的时代我们所处的时代我们所处的时代我们所处的时代我们所处的时代我们所处的时代"
app:layout_constraintTop_toBottomOf=
"@id/barrier_title"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@id/blog_cover"
/>
<ImageView
android:layout_marginTop=
"10dp"
android:id=
"@+id/blog_cover"
app:layout_constraintTop_toBottomOf=
"@id/barrier_title"
app:layout_constraintEnd_toEndOf=
"parent"
android:layout_width=
"82dp"
android:layout_height=
"55dp"
android:maxWidth=
"82dp"
android:maxHeight=
"55dp"
android:src=
"@drawable/pic1"
/>
<androidx.constraintlayout.widget.Barrier
android:id=
"@+id/barrier_content"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:barrierDirection=
"bottom"
app:constraint_referenced_ids=
"txt_abstract"
tools:layout_editor_absoluteX=
"12dp"
tools:layout_editor_absoluteY=
"16dp"
/>
<TextView
android:id=
"@+id/txt_author"
android:layout_marginTop=
"10dp"
android:text=
"段启岩"
android:textSize=
"10sp"
android:textColor=
"@color/colorText"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/barrier_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
<TextView
android:id=
"@+id/txt_dot"
android:text=
"·"
android:layout_marginTop=
"10dp"
android:textSize=
"10sp"
android:textStyle=
"bold"
android:textColor=
"@color/colorText"
app:layout_constraintTop_toBottomOf=
"@id/barrier_content"
app:layout_constraintStart_toEndOf=
"@id/txt_author"
android:paddingStart=
"6dp"
android:paddingLeft=
"6dp"
android:paddingEnd=
"6dp"
android:paddingRight=
"6dp"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
<TextView
android:id=
"@+id/txt_create_time"
android:layout_marginTop=
"10dp"
android:textSize=
"10sp"
android:textColor=
"@color/colorText"
android:text=
"2020-2-18 10:24:00"
app:layout_constraintTop_toBottomOf=
"@id/barrier_content"
app:layout_constraintStart_toEndOf=
"@id/txt_dot"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
<androidx.constraintlayout.widget.Barrier
android:id=
"@+id/barrier_info"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:barrierDirection=
"bottom"
app:constraint_referenced_ids=
"txt_create_time,txt_author,txt_dot"
tools:layout_editor_absoluteX=
"12dp"
tools:layout_editor_absoluteY=
"16dp"
/>
<View
app:layout_constraintTop_toBottomOf=
"@id/barrier_info"
android:layout_marginTop=
"18dp"
android:layout_width=
"0dp"
android:layout_height=
"1dp"
android:background=
"#efefef"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_blog_list.xml
0 → 100644
View file @
279e264c
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
<data>
<variable
name=
"viewModel"
type=
"cn.yunliyunwai.beyondclouds.viewmodel.BlogListFragmentViewModel"
/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/blog_recycler_view"
app:layout_constraintBottom_toTopOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
android:scrollbars=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
app/src/main/res/layout/fragment_category.xml
deleted
100644 → 0
View file @
d214ba4c
<?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"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<TextView
android:id=
"@+id/txt_category"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"24dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/values/colors.xml
View file @
279e264c
...
...
@@ -7,5 +7,6 @@
<color
name=
"colorWhite"
>
#FFFFFF
</color>
<color
name=
"colorStatusBar"
>
#ffffff
</color>
<color
name=
"colorText"
>
#999999
</color>
<color
name=
"colorGray"
>
#666666
</color>
<color
name=
"colorTextAccent"
>
#333333
</color>
</resources>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment