增加历史列表
This commit is contained in:
@@ -15,6 +15,7 @@ import com.mogo.map.MogoMapView;
|
||||
import com.mogo.map.location.IMogoLocationClient;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||
import com.mogo.module.common.MogoModulePaths;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.map.IMogoMapService;
|
||||
|
||||
@@ -55,14 +56,10 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
|
||||
mMogoMapView = findViewById( R.id.module_map_id_map );
|
||||
mMogoMap = mMogoMapView.getMap();
|
||||
mMogoMap.getUIController().showMyLocation( true );
|
||||
findViewById(R.id.module_map_id_search).setOnClickListener(new View.OnClickListener() {
|
||||
@Override public void onClick(View v) {
|
||||
ARouter.getInstance().build(MogoModulePaths.PATH_MODULE_NAV_ACTIVITY).navigation(getActivity());
|
||||
}
|
||||
});
|
||||
|
||||
mSearch = findViewById( R.id.module_map_id_search );
|
||||
mSearch.setOnClickListener( view -> {
|
||||
ARouter.getInstance().build(MogoModulePaths.PATH_MODULE_NAV_ACTIVITY).navigation(getActivity());
|
||||
} );
|
||||
|
||||
mHome = findViewById( R.id.module_map_id_home );
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mogo.module.navi.ui
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
@@ -7,9 +8,11 @@ import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.module.common.MogoModulePaths
|
||||
import com.mogo.module.navi.R
|
||||
import com.mogo.module.navi.ui.base.BaseActivity
|
||||
|
||||
@Route(path = MogoModulePaths.PATH_MODULE_NAV_ACTIVITY)
|
||||
class NaviActivity : AppCompatActivity() {
|
||||
class NaviActivity : BaseActivity() {
|
||||
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@@ -18,6 +21,5 @@ class NaviActivity : AppCompatActivity() {
|
||||
.build("/navi/search")
|
||||
.navigation() as Fragment
|
||||
supportFragmentManager.beginTransaction().replace(R.id.fl_container,fragment).commitNow()
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,9 +21,6 @@ public class SearchPoiAdapter extends RecycleBaseAdapter<MogoTip> {
|
||||
public SearchPoiAdapter(Context context, List<MogoTip> list) {
|
||||
super(context, list, R.layout.item_search_poi);
|
||||
}
|
||||
private OnItemClickedListener< MogoTip > mOnItemClickedListener;
|
||||
private OnItemClickedListener< MogoTip > mOnDeleteAllClickedListener;
|
||||
private OnItemClickedListener< MogoTip > mOnActionButtonClickedListener;
|
||||
private boolean mShowDelete = false;
|
||||
|
||||
private View.OnClickListener onClickListener;
|
||||
@@ -42,17 +39,7 @@ public class SearchPoiAdapter extends RecycleBaseAdapter<MogoTip> {
|
||||
public void setOnClickListener(View.OnClickListener onClickListener) {
|
||||
this.onClickListener = onClickListener;
|
||||
}
|
||||
public void setOnItemClickedListener( OnItemClickedListener< MogoTip > onItemClickedListener ) {
|
||||
this.mOnItemClickedListener = onItemClickedListener;
|
||||
}
|
||||
|
||||
public void setOnDeleteAllClickedListener( OnItemClickedListener< MogoTip > onDeleteAllClickedListener ) {
|
||||
this.mOnDeleteAllClickedListener = onDeleteAllClickedListener;
|
||||
}
|
||||
|
||||
public void setOnActionButtonClickedListener( OnItemClickedListener< MogoTip > onActionButtonClickedListener ) {
|
||||
this.mOnActionButtonClickedListener = onActionButtonClickedListener;
|
||||
}
|
||||
public void setShowDelete( boolean showDelete ) {
|
||||
this.mShowDelete = showDelete;
|
||||
}
|
||||
@@ -62,9 +49,5 @@ public class SearchPoiAdapter extends RecycleBaseAdapter<MogoTip> {
|
||||
setDatas(datums);
|
||||
//notifyDataSetChanged();
|
||||
}
|
||||
public void clear(){
|
||||
mOnItemClickedListener = null;
|
||||
mOnDeleteAllClickedListener = null;
|
||||
mOnActionButtonClickedListener = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,11 +20,14 @@ import com.mogo.map.search.inputtips.MogoTip;
|
||||
import com.mogo.module.navi.R;
|
||||
import com.mogo.module.navi.bean.EntityConvertUtils;
|
||||
import com.mogo.module.navi.bean.SearchPoi;
|
||||
import com.mogo.module.navi.database.AppDataBase;
|
||||
import com.mogo.module.navi.ui.adapter.HistoryPoiAdapter;
|
||||
import com.mogo.module.navi.ui.adapter.SearchPoiAdapter;
|
||||
import com.mogo.module.navi.ui.base.BaseFragment;
|
||||
import com.mogo.module.navi.ui.base.UiController;
|
||||
import com.mogo.utils.WindowUtils;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -50,23 +53,22 @@ public class SearchFragment extends BaseFragment implements SearchView {
|
||||
private EditText mSearchBox;
|
||||
|
||||
private RecyclerView mSearchResult;
|
||||
private RecyclerView rvHistory;
|
||||
private SearchPoiAdapter mPoiAdapter;
|
||||
private HistoryPoiAdapter mHistoryAdapter;
|
||||
|
||||
private View mMyLocation;
|
||||
private View mChoicePoint;
|
||||
private View mCurrentLocation;
|
||||
|
||||
/**
|
||||
* 设置常用地址(我的位置、选点)时的设置按钮
|
||||
*/
|
||||
private TextView mActionButton;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 地址设置是否完成
|
||||
*/
|
||||
private boolean mActionSuccess = false;
|
||||
private View rlHistory;
|
||||
private TextView tvEmpty;
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
@@ -88,8 +90,54 @@ public class SearchFragment extends BaseFragment implements SearchView {
|
||||
|
||||
@Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
mSearchBox=view.findViewById(R.id.et_navi_search);
|
||||
mSearchResult=view.findViewById(R.id.rv_navi_search);
|
||||
mSearchBox = view.findViewById(R.id.et_navi_search);
|
||||
mSearchResult = view.findViewById(R.id.rv_navi_search);
|
||||
rvHistory = view.findViewById(R.id.rv_navi_history);
|
||||
rlHistory = view.findViewById(R.id.rl_navi_history);
|
||||
LinearLayoutManager linearManager =
|
||||
new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
|
||||
|
||||
rvHistory.setLayoutManager(linearManager);
|
||||
LinearLayoutManager linearLayoutManager =
|
||||
new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
|
||||
mSearchResult.setLayoutManager(linearLayoutManager);
|
||||
|
||||
mPoiAdapter= new SearchPoiAdapter(getActivity(),new ArrayList<>());
|
||||
mSearchResult.setAdapter(mPoiAdapter);
|
||||
|
||||
mHistoryAdapter= new HistoryPoiAdapter(getActivity(),new ArrayList<>());
|
||||
rvHistory.setAdapter(mHistoryAdapter);
|
||||
|
||||
tvEmpty = findViewById(R.id.tv_navi_list_empty);
|
||||
|
||||
|
||||
findViewById(R.id.iv_navi_back).setOnClickListener(new View.OnClickListener() {
|
||||
@Override public void onClick(View v) {
|
||||
getActivity().finish();
|
||||
}
|
||||
});
|
||||
|
||||
mHistoryAdapter.setOnClickListener(new View.OnClickListener() {
|
||||
@Override public void onClick(View v) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
mPoiAdapter.setOnClickListener(new View.OnClickListener() {
|
||||
@Override public void onClick(View v) {
|
||||
MogoTip tag = (MogoTip) v.getTag(R.id.tag_position);
|
||||
SearchPoi searchPoi = EntityConvertUtils.tipToPoi(tag);
|
||||
mSearchPresenter.insert(searchPoi);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
findViewById(R.id.tv_navi_history_clear).setOnClickListener(new View.OnClickListener() {
|
||||
@Override public void onClick(View v) {
|
||||
mSearchPresenter.deleteAllCachedPoi();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -179,42 +227,22 @@ public class SearchFragment extends BaseFragment implements SearchView {
|
||||
|
||||
@Override
|
||||
public void renderSearchPoiResult(List<MogoTip> datums, boolean showDelete) {
|
||||
|
||||
if (datums == null || datums.isEmpty()) {
|
||||
mSearchResult.setVisibility(View.GONE);
|
||||
} else {
|
||||
mSearchResult.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (mPoiAdapter == null) {
|
||||
mPoiAdapter = new SearchPoiAdapter(getContext(), datums);
|
||||
mPoiAdapter.setOnItemClickedListener(item -> {
|
||||
if (mSearchType == SearchConstants.SEARCH_TYPE_COMMON) {
|
||||
final Disposable disposable =
|
||||
mSearchPresenter.cacheSelectPoiItem(item).subscribe(output -> {
|
||||
navi2Location(EntityConvertUtils.tipToPoi(item));
|
||||
});
|
||||
mSearchPresenter.addDisposable(disposable);
|
||||
} else {
|
||||
// do nothing.
|
||||
}
|
||||
});
|
||||
mPoiAdapter.setOnDeleteAllClickedListener(NULL -> {
|
||||
mSearchPresenter.deleteAllCachedPoi();
|
||||
});
|
||||
|
||||
mPoiAdapter.setShowDelete(showDelete);
|
||||
mSearchResult.setAdapter(mPoiAdapter);
|
||||
} else {
|
||||
if (datums != null && !datums.isEmpty()) {
|
||||
mSearchResult.scrollToPosition(0);
|
||||
}
|
||||
mPoiAdapter.refresh(datums, showDelete);
|
||||
if (datums==null||datums.isEmpty()) {
|
||||
showEmpty(getString(R.string.search_empty));
|
||||
return;
|
||||
}
|
||||
showResult();
|
||||
mPoiAdapter.setDatas(datums);
|
||||
}
|
||||
|
||||
@Override public void showHistory(List<SearchPoi> datums) {
|
||||
|
||||
if (datums==null||datums.isEmpty()) {
|
||||
showEmpty(getString(R.string.history_empty));
|
||||
return;
|
||||
}
|
||||
showHistory();
|
||||
mHistoryAdapter.setDatas(datums);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -287,17 +315,10 @@ public class SearchFragment extends BaseFragment implements SearchView {
|
||||
// }
|
||||
//}
|
||||
|
||||
/**
|
||||
* @param searchPoi 导航目的地
|
||||
*/
|
||||
|
||||
private void navi2Location(SearchPoi searchPoi) {
|
||||
|
||||
if (searchPoi == null || searchPoi == SearchPoi.NULL) {
|
||||
Toast.makeText(mContext, "未设置", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
//SearchPoiLiveData.getInstance().postValue( searchPoi );
|
||||
exitSearch();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -327,11 +348,26 @@ public class SearchFragment extends BaseFragment implements SearchView {
|
||||
}
|
||||
mSearchBox.setTag(null);
|
||||
|
||||
if (mPoiAdapter != null) {
|
||||
mPoiAdapter.clear();
|
||||
}
|
||||
mPoiAdapter = null;
|
||||
//removeChoicePointMarker();
|
||||
}
|
||||
|
||||
private void showResult() {
|
||||
rlHistory.setVisibility(View.GONE);
|
||||
mSearchResult.setVisibility(View.VISIBLE);
|
||||
tvEmpty.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
private void showHistory() {
|
||||
rlHistory.setVisibility(View.VISIBLE);
|
||||
mSearchResult.setVisibility(View.GONE);
|
||||
tvEmpty.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
private void showEmpty(String str){
|
||||
rlHistory.setVisibility(View.GONE);
|
||||
tvEmpty.setText(str);
|
||||
mSearchResult.setVisibility(View.GONE);
|
||||
tvEmpty.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,11 @@ import com.mogo.module.navi.constants.DataConstants;
|
||||
import com.mogo.module.navi.database.AppDataBase;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.map.IMogoMapService;
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.Scheduler;
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleEmitter;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
@@ -97,6 +102,8 @@ public class SearchPresenter extends Presenter< SearchView >
|
||||
mView.renderSearchPoiResult(result,false);
|
||||
}
|
||||
});
|
||||
inputtipsSearch.requestInputtipsAsyn();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -145,7 +152,7 @@ public class SearchPresenter extends Presenter< SearchView >
|
||||
.subscribeOn( Schedulers.io() )
|
||||
.observeOn( AndroidSchedulers.mainThread() )
|
||||
.subscribe( count -> {
|
||||
mView.renderSearchPoiResult( null, false );
|
||||
mView.showHistory( null );
|
||||
} );
|
||||
mCompositeDisposable.add( disposable );
|
||||
}
|
||||
@@ -217,6 +224,27 @@ public class SearchPresenter extends Presenter< SearchView >
|
||||
}
|
||||
|
||||
|
||||
public void navi2Positon(){
|
||||
//mMapService.getNavi(getContext()).naviTo();
|
||||
}
|
||||
|
||||
public void insert(SearchPoi searchPoi){
|
||||
Observable.create(new ObservableOnSubscribe<String>() {
|
||||
@Override public void subscribe(ObservableEmitter<String> emitter) throws Exception {
|
||||
AppDataBase.getDatabase(getContext()).poiDao().insert(searchPoi);
|
||||
}
|
||||
}).subscribeOn(Schedulers.io()).subscribe();
|
||||
}
|
||||
|
||||
public void clearHistory(List<SearchPoi> list){
|
||||
Observable.create(new ObservableOnSubscribe<String>() {
|
||||
@Override public void subscribe(ObservableEmitter<String> emitter) throws Exception {
|
||||
AppDataBase.getDatabase(getContext()).poiDao().deleteAll(list);
|
||||
}
|
||||
}).subscribeOn(Schedulers.io()).subscribe();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroy( @NonNull LifecycleOwner owner ) {
|
||||
|
||||
@@ -22,10 +22,18 @@
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/dp_80"
|
||||
android:id="@+id/iv_navi_back"
|
||||
android:layout_height="@dimen/dp_80"
|
||||
android:layout_marginLeft="@dimen/dp_24"
|
||||
android:layout_marginRight="@dimen/dp_20"
|
||||
android:src="@mipmap/icon_back"
|
||||
/>
|
||||
<EditText
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/et_navi_search"
|
||||
android:background="@null"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:imeOptions="actionDone"
|
||||
@@ -34,13 +42,7 @@
|
||||
android:textColorHint="@color/white_60"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/dp_80"
|
||||
android:layout_height="@dimen/dp_80"
|
||||
android:layout_marginLeft="@dimen/dp_24"
|
||||
android:layout_marginRight="@dimen/dp_20"
|
||||
android:src="@mipmap/icon_back"
|
||||
/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -116,7 +118,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
android:layout_alignParentRight="true"
|
||||
android:text="@string/history_search"
|
||||
android:text="@string/history_clear"
|
||||
android:textColor="@color/txt_blue"
|
||||
android:textSize="@dimen/txt_normal"
|
||||
/>
|
||||
@@ -125,28 +127,42 @@
|
||||
android:layout_width="match_parent"
|
||||
android:id="@+id/rv_navi_history"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_120"
|
||||
android:layout_marginTop="@dimen/dp_60"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:layout_width="600dp"
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="@dimen/dp_32"
|
||||
android:layout_width="600dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_navi_wash"
|
||||
android:background="@drawable/shape_round_gray"
|
||||
app:layout_constraintTop_toBottomOf="@id/ll_navi_search"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:id="@+id/rv_navi_search"
|
||||
android:layout_height="match_parent"/>
|
||||
android:id="@+id/rv_navi_search"/>
|
||||
|
||||
|
||||
<TextView
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="@dimen/dp_32"
|
||||
android:layout_width="600dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_navi_wash"
|
||||
android:background="@drawable/shape_round_gray"
|
||||
app:layout_constraintTop_toBottomOf="@id/ll_navi_search"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:id="@+id/tv_navi_list_empty"/>
|
||||
|
||||
<TextView
|
||||
android:drawableTop="@mipmap/icon_navi_restrant"
|
||||
app:layout_constraintTop_toTopOf="@id/rl_navi_history"
|
||||
app:layout_constraintLeft_toRightOf="@id/rl_navi_history"
|
||||
app:layout_constraintTop_toBottomOf="@id/ll_navi_home"
|
||||
app:layout_constraintLeft_toLeftOf="@id/ll_navi_home"
|
||||
android:text="@string/navi_restrant"
|
||||
android:layout_marginTop="@dimen/dp_32"
|
||||
android:id="@+id/tv_navi_restaurant"
|
||||
android:layout_marginLeft="@dimen/dp_32"
|
||||
style="@style/txt_navi_style"
|
||||
/>
|
||||
|
||||
@@ -155,7 +171,7 @@
|
||||
android:id="@+id/tv_navi_gas"
|
||||
app:layout_constraintTop_toTopOf="@id/tv_navi_restaurant"
|
||||
app:layout_constraintLeft_toRightOf="@id/tv_navi_restaurant"
|
||||
android:text="@string/navi_restrant"
|
||||
android:text="@string/navi_gas"
|
||||
android:layout_marginLeft="@dimen/dp_32"
|
||||
style="@style/txt_navi_style"
|
||||
/>
|
||||
@@ -166,7 +182,7 @@
|
||||
android:id="@+id/tv_navi_toilet"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_navi_restaurant"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tv_navi_restaurant"
|
||||
android:text="@string/navi_restrant"
|
||||
android:text="@string/navi_toilet"
|
||||
android:layout_marginTop="@dimen/dp_32"
|
||||
style="@style/txt_navi_style"
|
||||
/>
|
||||
@@ -177,7 +193,7 @@
|
||||
android:id="@+id/tv_navi_wash"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_navi_toilet"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tv_navi_restaurant"
|
||||
android:text="@string/navi_restrant"
|
||||
android:text="@string/navi_park"
|
||||
android:layout_marginTop="@dimen/dp_32"
|
||||
|
||||
style="@style/txt_navi_style"
|
||||
@@ -188,7 +204,7 @@
|
||||
android:id="@+id/tv_navi_park"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_navi_gas"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tv_navi_gas"
|
||||
android:text="@string/navi_restrant"
|
||||
android:text="@string/navi_wash"
|
||||
android:layout_marginTop="@dimen/dp_32"
|
||||
|
||||
style="@style/txt_navi_style"
|
||||
@@ -199,12 +215,9 @@
|
||||
android:id="@+id/tv_navi_setting"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_navi_park"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tv_navi_gas"
|
||||
android:text="@string/navi_restrant"
|
||||
android:text="@string/navi_setting"
|
||||
android:layout_marginTop="@dimen/dp_32"
|
||||
|
||||
style="@style/txt_navi_style"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -3,13 +3,14 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_height="@dimen/dp_180"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_position"
|
||||
android:layout_width="@dimen/dp_40"
|
||||
android:layout_height="@dimen/dp_40"
|
||||
android:layout_width="@dimen/dp_80"
|
||||
android:layout_height="@dimen/dp_80"
|
||||
android:src="@mipmap/icon_navi_position"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@@ -18,12 +19,12 @@
|
||||
<TextView
|
||||
android:id="@+id/tv_position"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/dp_35"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:layout_height="@dimen/dp_70"
|
||||
android:layout_marginLeft="@dimen/dp_30"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:gravity="center_vertical"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_25"
|
||||
android:textSize="25sp"
|
||||
app:layout_constraintLeft_toRightOf="@id/iv_position"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@@ -33,12 +34,12 @@
|
||||
<TextView
|
||||
android:id="@+id/tv_position_des"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/dp_21"
|
||||
android:layout_marginTop="@dimen/dp_4"
|
||||
android:layout_height="@dimen/dp_42"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:ellipsize="marquee"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/white_60"
|
||||
android:textSize="@dimen/sp_15"
|
||||
android:textSize="@dimen/sp_30"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tv_position"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_position"
|
||||
@@ -46,8 +47,8 @@
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/dp_1"
|
||||
android:layout_marginLeft="@dimen/dp_55"
|
||||
android:layout_height="@dimen/dp_2"
|
||||
android:layout_marginLeft="@dimen/dp_110"
|
||||
android:background="@color/white_10"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
|
||||
BIN
modules/mogo-module-navi/src/main/res/mipmap-xhdpi/icon_navi_position.png
Executable file
BIN
modules/mogo-module-navi/src/main/res/mipmap-xhdpi/icon_navi_position.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
@@ -5,4 +5,12 @@
|
||||
<string name="navi_home">回家</string>
|
||||
<string name="navi_company">去公司</string>
|
||||
<string name="navi_restrant">餐馆</string>
|
||||
<string name="navi_gas">加油站</string>
|
||||
<string name="navi_toilet">卫生间</string>
|
||||
<string name="navi_park">停车场</string>
|
||||
<string name="navi_wash">洗车</string>
|
||||
<string name="navi_setting">更多设置</string>
|
||||
<string name="history_clear">清空历史</string>
|
||||
<string name="history_empty">暂无历史结果</string>
|
||||
<string name="search_empty">暂无搜索结果</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user