修复列表项宽度初始化问题
This commit is contained in:
parent
5cb4f6c409
commit
4b9f34b946
@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Fri Apr 04 05:21:19 GMT 2025
|
#Sat Apr 05 02:50:45 GMT 2025
|
||||||
stageCount=0
|
stageCount=0
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=1.0
|
baseVersion=1.0
|
||||||
publishVersion=1.0.0
|
publishVersion=1.0.0
|
||||||
buildCount=412
|
buildCount=438
|
||||||
baseBetaVersion=1.0.1
|
baseBetaVersion=1.0.1
|
||||||
|
@ -0,0 +1,247 @@
|
|||||||
|
package cc.winboll.studio.positions.adapters;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author ZhanGSKen@AliYun.Com
|
||||||
|
* @Date 2025/04/04 13:38:13
|
||||||
|
*/
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.EditText;
|
||||||
|
import android.widget.Switch;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
|
import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog;
|
||||||
|
import cc.winboll.studio.libappbase.utils.ToastUtils;
|
||||||
|
import cc.winboll.studio.positions.R;
|
||||||
|
import cc.winboll.studio.positions.models.PostionModel;
|
||||||
|
import cc.winboll.studio.positions.utils.PostionUtils;
|
||||||
|
import cc.winboll.studio.positions.views.LeftScrollView;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class PostionModelAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||||
|
|
||||||
|
public static final String TAG = "PostionModelAdapter";
|
||||||
|
|
||||||
|
private static final int VIEW_TYPE_SIMPLE = 0;
|
||||||
|
private static final int VIEW_TYPE_EDIT = 1;
|
||||||
|
|
||||||
|
private Context context;
|
||||||
|
private ArrayList<PostionModel> mPostionList;
|
||||||
|
|
||||||
|
public PostionModelAdapter(Context context, ArrayList<PostionModel> postionList) {
|
||||||
|
this.context = context;
|
||||||
|
this.mPostionList = postionList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
LayoutInflater inflater = LayoutInflater.from(context);
|
||||||
|
if (viewType == VIEW_TYPE_SIMPLE) {
|
||||||
|
View view = inflater.inflate(R.layout.view_position_simple, parent, false);
|
||||||
|
return new SimpleViewHolder(parent, view);
|
||||||
|
} else {
|
||||||
|
View view = inflater.inflate(R.layout.view_position, parent, false);
|
||||||
|
return new EditViewHolder(parent, view);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {
|
||||||
|
final PostionModel model = mPostionList.get(position);
|
||||||
|
if (holder instanceof SimpleViewHolder) {
|
||||||
|
final SimpleViewHolder simpleViewHolder = (SimpleViewHolder) holder;
|
||||||
|
String szView = model.getComments().trim().equals("") ?"[NULL]": model.getComments();
|
||||||
|
simpleViewHolder.tvComments.setText(szView);
|
||||||
|
simpleViewHolder.scrollView.setOnActionListener(new LeftScrollView.OnActionListener(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUp() {
|
||||||
|
ArrayList<PostionModel> list = mPostionList;
|
||||||
|
if (position > 0) {
|
||||||
|
ToastUtils.show("onUp");
|
||||||
|
simpleViewHolder.scrollView.smoothScrollTo(0, 0);
|
||||||
|
// PhoneConnectRuleModel newBean = new PhoneConnectRuleModel();
|
||||||
|
// newBean.setRuleText(list.get(position).getRuleText());
|
||||||
|
// newBean.setIsAllowConnection(list.get(position).isAllowConnection());
|
||||||
|
// newBean.setIsEnable(list.get(position).isEnable());
|
||||||
|
// newBean.setIsSimpleView(list.get(position).isSimpleView());
|
||||||
|
list.add(position - 1, list.get(position));
|
||||||
|
list.remove(position + 1);
|
||||||
|
PostionUtils.getInstance(context).savePostionModelList();
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDown() {
|
||||||
|
ArrayList<PostionModel> list = mPostionList;
|
||||||
|
if (position < list.size() - 1) {
|
||||||
|
ToastUtils.show("onDown");
|
||||||
|
simpleViewHolder.scrollView.smoothScrollTo(0, 0);
|
||||||
|
// PhoneConnectRuleModel newBean = new PhoneConnectRuleModel();
|
||||||
|
// newBean.setRuleText(list.get(position).getRuleText());
|
||||||
|
// newBean.setIsAllowConnection(list.get(position).isAllowConnection());
|
||||||
|
// newBean.setIsEnable(list.get(position).isEnable());
|
||||||
|
// newBean.setIsSimpleView(list.get(position).isSimpleView());
|
||||||
|
list.add(position + 2, list.get(position));
|
||||||
|
list.remove(position);
|
||||||
|
PostionUtils.getInstance(context).savePostionModelList();
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEdit() {
|
||||||
|
simpleViewHolder.scrollView.smoothScrollTo(0, 0);
|
||||||
|
model.setIsSimpleView(false);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
//notifyItemChanged(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDelete() {
|
||||||
|
YesNoAlertDialog.show(simpleViewHolder.scrollView.getContext(), "删除确认", "是否删除该通话规则?", new YesNoAlertDialog.OnDialogResultListener(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onYes() {
|
||||||
|
simpleViewHolder.scrollView.smoothScrollTo(0, 0);
|
||||||
|
model.setIsSimpleView(true);
|
||||||
|
ArrayList<PostionModel> list = mPostionList;
|
||||||
|
list.remove(position);
|
||||||
|
PostionUtils.getInstance(context).savePostionModelList();
|
||||||
|
notifyDataSetChanged();
|
||||||
|
//notifyItemChanged(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNo() {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// simpleViewHolder.editButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
// @Override
|
||||||
|
// public void onClick(View v) {
|
||||||
|
// model.setIsSimpleView(false);
|
||||||
|
// notifyItemChanged(position);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// simpleViewHolder.deleteButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
// @Override
|
||||||
|
// public void onClick(View v) {
|
||||||
|
// model.setIsSimpleView(false);
|
||||||
|
// ArrayList<PhoneConnectRuleModel> list = Rules.getInstance(context).getPhoneBlacRuleBeanList();
|
||||||
|
// list.remove(position);
|
||||||
|
// Rules.getInstance(context).saveRules();
|
||||||
|
// notifyItemChanged(position);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// // 触摸事件处理
|
||||||
|
// simpleViewHolder.contentLayout.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
// @Override
|
||||||
|
// public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
// switch (event.getAction()) {
|
||||||
|
// case MotionEvent.ACTION_DOWN:
|
||||||
|
// simpleViewHolder.startX = event.getX();
|
||||||
|
// simpleViewHolder.isSwiping = true;
|
||||||
|
// break;
|
||||||
|
// case MotionEvent.ACTION_MOVE:
|
||||||
|
// if (simpleViewHolder.isSwiping) {
|
||||||
|
// float deltaX = simpleViewHolder.startX - event.getX();
|
||||||
|
// if (deltaX > 0) { // 左滑
|
||||||
|
// float translationX = Math.max(-simpleViewHolder.actionLayout.getWidth(), -deltaX);
|
||||||
|
// simpleViewHolder.contentLayout.setTranslationX(translationX);
|
||||||
|
// simpleViewHolder.actionLayout.setVisibility(View.VISIBLE);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
// case MotionEvent.ACTION_UP:
|
||||||
|
// simpleViewHolder.isSwiping = false;
|
||||||
|
// if (simpleViewHolder.contentLayout.getTranslationX() < -simpleViewHolder.actionLayout.getWidth() / 2) {
|
||||||
|
// // 保持按钮显示
|
||||||
|
// simpleViewHolder.contentLayout.setTranslationX(-actionLayout.getWidth());
|
||||||
|
// } else {
|
||||||
|
// // 恢复原状
|
||||||
|
// simpleViewHolder.contentLayout.animate().translationX(0).setDuration(200).start();
|
||||||
|
// simpleViewHolder.actionLayout.setVisibility(View.INVISIBLE);
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
} else if (holder instanceof EditViewHolder) {
|
||||||
|
final EditViewHolder editViewHolder = (EditViewHolder) holder;
|
||||||
|
editViewHolder.etComments.setText(model.getComments());
|
||||||
|
editViewHolder.swEnable.setChecked(model.isEnable());
|
||||||
|
editViewHolder.btnConfirm.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
model.setComments(editViewHolder.etComments.getText().toString());
|
||||||
|
model.setIsEnable(editViewHolder.swEnable.isChecked());
|
||||||
|
model.setIsSimpleView(true);
|
||||||
|
PostionUtils.getInstance(context).savePostionModelList();
|
||||||
|
notifyItemChanged(position);
|
||||||
|
Toast.makeText(context, "保存成功", Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return mPostionList.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemViewType(int position) {
|
||||||
|
PostionModel model = mPostionList.get(position);
|
||||||
|
// 这里可以根据模型的状态来决定视图类型,简单起见,假设点击按钮后进入编辑视图
|
||||||
|
return model.isSimpleView() ? VIEW_TYPE_SIMPLE : VIEW_TYPE_EDIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
static class SimpleViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
private final LeftScrollView scrollView;
|
||||||
|
private final TextView tvComments;
|
||||||
|
|
||||||
|
|
||||||
|
public SimpleViewHolder(@NonNull ViewGroup parent, @NonNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
scrollView = itemView.findViewById(R.id.scrollView);
|
||||||
|
//tvRuleText = itemView.findViewById(R.id.ruletext_tv);
|
||||||
|
tvComments = new TextView(itemView.getContext());
|
||||||
|
//tvComments.setBackgroundColor(Color.GRAY);
|
||||||
|
LogUtils.d(TAG, String.format("getWidth() %d", parent.getWidth()));
|
||||||
|
scrollView.setContentWidth(parent.getWidth());
|
||||||
|
//scrollView.setContentWidth(600);
|
||||||
|
scrollView.addContentLayout(tvComments);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static class EditViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
EditText etComments;
|
||||||
|
Switch swEnable;
|
||||||
|
Button btnMoveCarema;
|
||||||
|
Button btnConfirm;
|
||||||
|
|
||||||
|
public EditViewHolder(@NonNull ViewGroup parent, @NonNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
etComments = itemView.findViewById(R.id.comments_et);
|
||||||
|
swEnable = itemView.findViewById(R.id.enable_sw);
|
||||||
|
btnMoveCarema = itemView.findViewById(R.id.movecarema_btn);
|
||||||
|
btnConfirm = itemView.findViewById(R.id.confirm_btn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -22,6 +22,8 @@ public class LogFragment extends Fragment {
|
|||||||
private static final String ARG_PAGE = "ARG_PAGE";
|
private static final String ARG_PAGE = "ARG_PAGE";
|
||||||
private int mPage;
|
private int mPage;
|
||||||
|
|
||||||
|
LogView mLogView;
|
||||||
|
|
||||||
// public static LogFragment newInstance(int page) {
|
// public static LogFragment newInstance(int page) {
|
||||||
// Bundle args = new Bundle();
|
// Bundle args = new Bundle();
|
||||||
// args.putInt(ARG_PAGE, page);
|
// args.putInt(ARG_PAGE, page);
|
||||||
@ -43,8 +45,16 @@ public class LogFragment extends Fragment {
|
|||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||||
@Nullable Bundle savedInstanceState) {
|
@Nullable Bundle savedInstanceState) {
|
||||||
View view = inflater.inflate(R.layout.fragment_log, container, false);
|
View view = inflater.inflate(R.layout.fragment_log, container, false);
|
||||||
// LogView logView = view.findViewById(R.id.logview);
|
mLogView = view.findViewById(R.id.logview);
|
||||||
// logView.start();
|
mLogView.start();
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
mLogView.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,13 +6,16 @@ package cc.winboll.studio.positions.fragments;
|
|||||||
* @Describe 联系人
|
* @Describe 联系人
|
||||||
*/
|
*/
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
|
import android.content.ComponentName;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.ServiceConnection;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.location.Location;
|
import android.location.Location;
|
||||||
import android.location.LocationListener;
|
import android.location.LocationListener;
|
||||||
import android.location.LocationManager;
|
import android.location.LocationManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.IBinder;
|
||||||
import android.os.Message;
|
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
@ -21,28 +24,26 @@ import android.view.MenuItem;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
|
import android.widget.EditText;
|
||||||
|
import android.widget.Switch;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.app.ActivityCompat;
|
import androidx.core.app.ActivityCompat;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
import cc.winboll.studio.libappbase.utils.ToastUtils;
|
|
||||||
import cc.winboll.studio.positions.R;
|
|
||||||
import cc.winboll.studio.positions.models.PostionFixModel;
|
|
||||||
import cc.winboll.studio.positions.utils.LocationFusion;
|
|
||||||
import cc.winboll.studio.positions.utils.TimeUtils;
|
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.Switch;
|
|
||||||
import android.content.Intent;
|
|
||||||
import cc.winboll.studio.positions.services.GPSService;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.ServiceConnection;
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.os.IBinder;
|
|
||||||
import cc.winboll.studio.positions.listeners.OnGPSRTLocationListener;
|
|
||||||
import cc.winboll.studio.positions.MainActivity;
|
import cc.winboll.studio.positions.MainActivity;
|
||||||
import cc.winboll.studio.positions.views.PostionUtils;
|
import cc.winboll.studio.positions.R;
|
||||||
|
import cc.winboll.studio.positions.adapters.PostionModelAdapter;
|
||||||
|
import cc.winboll.studio.positions.listeners.OnGPSRTLocationListener;
|
||||||
|
import cc.winboll.studio.positions.models.PostionFixModel;
|
||||||
|
import cc.winboll.studio.positions.models.PostionModel;
|
||||||
|
import cc.winboll.studio.positions.services.GPSService;
|
||||||
|
import cc.winboll.studio.positions.utils.LocationFusion;
|
||||||
|
import cc.winboll.studio.positions.utils.PostionUtils;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class PositionsFragment extends Fragment {
|
public class PositionsFragment extends Fragment {
|
||||||
|
|
||||||
@ -53,6 +54,7 @@ public class PositionsFragment extends Fragment {
|
|||||||
|
|
||||||
private LocationManager locationManager;
|
private LocationManager locationManager;
|
||||||
|
|
||||||
|
|
||||||
//MyHandler mMyHandler;
|
//MyHandler mMyHandler;
|
||||||
|
|
||||||
TextView mtvTXMyLocationInfo;
|
TextView mtvTXMyLocationInfo;
|
||||||
@ -63,6 +65,9 @@ public class PositionsFragment extends Fragment {
|
|||||||
Button mbtnAdd;
|
Button mbtnAdd;
|
||||||
Location mLocationTX;
|
Location mLocationTX;
|
||||||
Location mLocationPhoneGPS;
|
Location mLocationPhoneGPS;
|
||||||
|
private RecyclerView recyclerView;
|
||||||
|
private PostionModelAdapter adapter;
|
||||||
|
private ArrayList<PostionModel> mPostionList;
|
||||||
|
|
||||||
TextView mtvPostionFixModelInfo;
|
TextView mtvPostionFixModelInfo;
|
||||||
TextView mtvLockPostionInfo;
|
TextView mtvLockPostionInfo;
|
||||||
@ -136,6 +141,15 @@ public class PositionsFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
recyclerView = viewMain.findViewById(R.id.recycler_view);
|
||||||
|
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
|
|
||||||
|
mPostionList = PostionUtils.getInstance(getActivity()).getPostionModelList();
|
||||||
|
|
||||||
|
adapter = new PostionModelAdapter(getActivity(), mPostionList);
|
||||||
|
recyclerView.setAdapter(adapter);
|
||||||
|
|
||||||
|
|
||||||
// metLockLatitude = viewMain.findViewById(R.id.locklatitude_et);
|
// metLockLatitude = viewMain.findViewById(R.id.locklatitude_et);
|
||||||
// metLockLongitude = viewMain.findViewById(R.id.locklongitude_et);
|
// metLockLongitude = viewMain.findViewById(R.id.locklongitude_et);
|
||||||
// metLockLatitude.setEnabled(false);
|
// metLockLatitude.setEnabled(false);
|
||||||
@ -174,7 +188,6 @@ public class PositionsFragment extends Fragment {
|
|||||||
//showLocationPhoneGPS();
|
//showLocationPhoneGPS();
|
||||||
//showPostionFixModelInfo();
|
//showPostionFixModelInfo();
|
||||||
|
|
||||||
|
|
||||||
return viewMain;
|
return viewMain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,9 @@ public class PostionModel extends BaseBean {
|
|||||||
// 精确度
|
// 精确度
|
||||||
private double accuracy;
|
private double accuracy;
|
||||||
private String provider;
|
private String provider;
|
||||||
|
private String comments;
|
||||||
|
private boolean isEnable;
|
||||||
|
private boolean isSimpleView;
|
||||||
|
|
||||||
public PostionModel() {
|
public PostionModel() {
|
||||||
this.uuid = UUID.randomUUID().toString();
|
this.uuid = UUID.randomUUID().toString();
|
||||||
@ -35,6 +38,9 @@ public class PostionModel extends BaseBean {
|
|||||||
this.timestamp = 0L;
|
this.timestamp = 0L;
|
||||||
this.accuracy = 0.0f;
|
this.accuracy = 0.0f;
|
||||||
this.provider = "";
|
this.provider = "";
|
||||||
|
this.comments = "";
|
||||||
|
this.isEnable = false;
|
||||||
|
this.isSimpleView = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PostionModel(Location location) {
|
public PostionModel(Location location) {
|
||||||
@ -44,6 +50,33 @@ public class PostionModel extends BaseBean {
|
|||||||
this.timestamp = location.getTime();
|
this.timestamp = location.getTime();
|
||||||
this.accuracy = location.getAccuracy();
|
this.accuracy = location.getAccuracy();
|
||||||
this.provider = location.getProvider();
|
this.provider = location.getProvider();
|
||||||
|
this.comments = "";
|
||||||
|
this.isEnable = false;
|
||||||
|
this.isSimpleView = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsEnable(boolean isEnable) {
|
||||||
|
this.isEnable = isEnable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnable() {
|
||||||
|
return isEnable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComments(String comments) {
|
||||||
|
this.comments = comments;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getComments() {
|
||||||
|
return comments;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsSimpleView(boolean isSimpleView) {
|
||||||
|
this.isSimpleView = isSimpleView;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSimpleView() {
|
||||||
|
return isSimpleView;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUuid(String uuid) {
|
public void setUuid(String uuid) {
|
||||||
@ -109,6 +142,9 @@ public class PostionModel extends BaseBean {
|
|||||||
jsonWriter.name("timestamp").value(getTimestamp());
|
jsonWriter.name("timestamp").value(getTimestamp());
|
||||||
jsonWriter.name("accuracy").value(getAccuracy());
|
jsonWriter.name("accuracy").value(getAccuracy());
|
||||||
jsonWriter.name("provider").value(getProvider());
|
jsonWriter.name("provider").value(getProvider());
|
||||||
|
jsonWriter.name("comments").value(getComments());
|
||||||
|
jsonWriter.name("isEnable").value(isEnable());
|
||||||
|
jsonWriter.name("isSimpleView").value(isSimpleView());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,6 +163,12 @@ public class PostionModel extends BaseBean {
|
|||||||
setAccuracy(jsonReader.nextDouble());
|
setAccuracy(jsonReader.nextDouble());
|
||||||
} else if (name.equals("provider")) {
|
} else if (name.equals("provider")) {
|
||||||
setProvider(jsonReader.nextString());
|
setProvider(jsonReader.nextString());
|
||||||
|
} else if (name.equals("comments")) {
|
||||||
|
setComments(jsonReader.nextString());
|
||||||
|
} else if (name.equals("isEnable")) {
|
||||||
|
setIsEnable(jsonReader.nextBoolean());
|
||||||
|
} else if (name.equals("isSimpleView")) {
|
||||||
|
setIsSimpleView(jsonReader.nextBoolean());
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package cc.winboll.studio.positions.views;
|
package cc.winboll.studio.positions.utils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen@AliYun.Com
|
* @Author ZhanGSKen@AliYun.Com
|
||||||
@ -31,6 +31,14 @@ public class PostionUtils {
|
|||||||
return _PostionUtils;
|
return _PostionUtils;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList<PostionModel> getPostionModelList() {
|
||||||
|
return mPostionModelList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void savePostionModelList() {
|
||||||
|
PostionModel.saveBeanList(mContext, mPostionModelList, PostionModel.class);
|
||||||
|
}
|
||||||
|
|
||||||
public void addPostion(PostionModel item) {
|
public void addPostion(PostionModel item) {
|
||||||
mPostionModelList.add(item);
|
mPostionModelList.add(item);
|
||||||
PostionModel.saveBeanList(mContext, mPostionModelList, PostionModel.class);
|
PostionModel.saveBeanList(mContext, mPostionModelList, PostionModel.class);
|
@ -0,0 +1,219 @@
|
|||||||
|
package cc.winboll.studio.positions.views;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author ZhanGSKen@AliYun.Com
|
||||||
|
* @Date 2025/03/04 10:51:50
|
||||||
|
* @Describe CustomHorizontalScrollView
|
||||||
|
*/
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
import android.view.MotionEvent;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.HorizontalScrollView;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import cc.winboll.studio.positions.R;
|
||||||
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
|
|
||||||
|
public class LeftScrollView extends HorizontalScrollView {
|
||||||
|
|
||||||
|
public static final String TAG = "LeftScrollView";
|
||||||
|
|
||||||
|
private LinearLayout contentLayout;
|
||||||
|
private LinearLayout toolLayout;
|
||||||
|
private TextView textView;
|
||||||
|
private Button editButton;
|
||||||
|
private Button deleteButton;
|
||||||
|
private Button upButton;
|
||||||
|
private Button downButton;
|
||||||
|
private float mStartX;
|
||||||
|
private float mEndX;
|
||||||
|
private boolean isScrolling = false;
|
||||||
|
private int nScrollAcceptSize;
|
||||||
|
|
||||||
|
public LeftScrollView(Context context) {
|
||||||
|
super(context);
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public LeftScrollView(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public LeftScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||||
|
super(context, attrs, defStyleAttr);
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addContentLayout(TextView textView) {
|
||||||
|
contentLayout.addView(textView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContentWidth(int contentWidth) {
|
||||||
|
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) contentLayout.getLayoutParams();
|
||||||
|
layoutParams.width = contentWidth;
|
||||||
|
contentLayout.setLayoutParams(layoutParams);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
View viewMain = inflate(getContext(), R.layout.view_left_scroll, null);
|
||||||
|
|
||||||
|
// 创建内容布局
|
||||||
|
contentLayout = viewMain.findViewById(R.id.content_layout);
|
||||||
|
toolLayout = viewMain.findViewById(R.id.action_layout);
|
||||||
|
|
||||||
|
//LogUtils.d(TAG, String.format("getWidth() %d", getWidth()));
|
||||||
|
|
||||||
|
addView(viewMain);
|
||||||
|
|
||||||
|
// 创建编辑按钮
|
||||||
|
editButton = viewMain.findViewById(R.id.edit_btn);
|
||||||
|
// 创建删除按钮
|
||||||
|
deleteButton = viewMain.findViewById(R.id.delete_btn);
|
||||||
|
// 向上按钮
|
||||||
|
upButton = viewMain.findViewById(R.id.up_btn);
|
||||||
|
// 向下按钮
|
||||||
|
downButton = viewMain.findViewById(R.id.down_btn);
|
||||||
|
|
||||||
|
// 编辑按钮点击事件
|
||||||
|
editButton.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
if (onActionListener != null) {
|
||||||
|
onActionListener.onEdit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 删除按钮点击事件
|
||||||
|
deleteButton.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
if (onActionListener != null) {
|
||||||
|
onActionListener.onDelete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// 编辑按钮点击事件
|
||||||
|
upButton.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
if (onActionListener != null) {
|
||||||
|
onActionListener.onUp();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 删除按钮点击事件
|
||||||
|
downButton.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
if (onActionListener != null) {
|
||||||
|
onActionListener.onDown();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onTouchEvent(MotionEvent event) {
|
||||||
|
switch (event.getAction()) {
|
||||||
|
case MotionEvent.ACTION_DOWN:
|
||||||
|
LogUtils.d(TAG, "ACTION_DOWN");
|
||||||
|
mStartX = event.getX();
|
||||||
|
// isScrolling = false;
|
||||||
|
break;
|
||||||
|
case MotionEvent.ACTION_MOVE:
|
||||||
|
//LogUtils.d(TAG, "ACTION_MOVE");
|
||||||
|
// float currentX = event.getX();
|
||||||
|
// float deltaX = mStartX - currentX;
|
||||||
|
// //mLastX = currentX;
|
||||||
|
// if (Math.abs(deltaX) > 0) {
|
||||||
|
// isScrolling = true;
|
||||||
|
// }
|
||||||
|
break;
|
||||||
|
case MotionEvent.ACTION_UP:
|
||||||
|
case MotionEvent.ACTION_CANCEL:
|
||||||
|
if (getScrollX() > 0) {
|
||||||
|
LogUtils.d(TAG, "ACTION_UP");
|
||||||
|
mEndX = event.getX();
|
||||||
|
LogUtils.d(TAG, String.format("mStartX %f, mEndX %f", mStartX, mEndX));
|
||||||
|
if (mEndX < mStartX) {
|
||||||
|
LogUtils.d(TAG, String.format("mEndX >= mStartX \ngetScrollX() %d", getScrollX()));
|
||||||
|
//if (getScrollX() > editButton.getWidth()) {
|
||||||
|
if (Math.abs(mStartX - mEndX) > editButton.getWidth()) {
|
||||||
|
smoothScrollToRight();
|
||||||
|
} else {
|
||||||
|
smoothScrollToLeft();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
LogUtils.d(TAG, String.format("mEndX >= mStartX \ngetScrollX() %d", getScrollX()));
|
||||||
|
//if (getScrollX() > deleteButton.getWidth()) {
|
||||||
|
if (Math.abs(mEndX - mStartX) > deleteButton.getWidth()) {
|
||||||
|
smoothScrollToLeft();
|
||||||
|
} else {
|
||||||
|
smoothScrollToRight();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return super.onTouchEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
void smoothScrollToRight() {
|
||||||
|
mEndX = 0;
|
||||||
|
mStartX = 0;
|
||||||
|
View childView = getChildAt(0);
|
||||||
|
if (childView != null) {
|
||||||
|
// 计算需要滑动到最右边的距离
|
||||||
|
int scrollToX = childView.getWidth() - getWidth();
|
||||||
|
// 确保滑动距离不小于0
|
||||||
|
final int scrollToX2 = Math.max(0, scrollToX);
|
||||||
|
// 平滑滑动到最右边
|
||||||
|
post(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
smoothScrollTo(scrollToX2, 0);
|
||||||
|
LogUtils.d(TAG, "smoothScrollTo(0, 0);");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
LogUtils.d(TAG, "smoothScrollTo(scrollToX, 0);");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void smoothScrollToLeft() {
|
||||||
|
mEndX = 0;
|
||||||
|
mStartX = 0;
|
||||||
|
// 在手指抬起时,使用 post 方法调用 smoothScrollTo(0, 0)
|
||||||
|
post(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
smoothScrollTo(0, 0);
|
||||||
|
LogUtils.d(TAG, "smoothScrollTo(0, 0);");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置文本内容
|
||||||
|
public void setText(CharSequence text) {
|
||||||
|
textView.setText(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 定义回调接口
|
||||||
|
public interface OnActionListener {
|
||||||
|
void onEdit();
|
||||||
|
void onDelete();
|
||||||
|
void onUp();
|
||||||
|
void onDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
private OnActionListener onActionListener;
|
||||||
|
|
||||||
|
public void setOnActionListener(OnActionListener listener) {
|
||||||
|
this.onActionListener = listener;
|
||||||
|
}
|
||||||
|
}
|
8
positions/src/main/res/drawable/recycler_view_border.xml
Normal file
8
positions/src/main/res/drawable/recycler_view_border.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="#000000" /> <!-- 设置边框宽度和颜色,这里是黑色 1dp 边框 -->
|
||||||
|
<solid android:color="#ffffff" /> <!-- 设置背景颜色,这里是白色 -->
|
||||||
|
</shape>
|
@ -9,47 +9,49 @@
|
|||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="80dp"
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:gravity="center_vertical">
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Text"
|
android:text="Text"
|
||||||
android:id="@+id/txmylocationinfo_tv"/>
|
android:id="@+id/txmylocationinfo_tv"/>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="80dp"
|
||||||
android:padding="10dp">
|
android:padding="10dp">
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Text"
|
android:text="Text"
|
||||||
android:id="@+id/phonegpsinfo_tv"/>
|
android:id="@+id/phonegpsinfo_tv"/>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="right">
|
android:gravity="right|center_vertical">
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@ -63,59 +65,21 @@
|
|||||||
android:text="+"
|
android:text="+"
|
||||||
android:id="@+id/add_btn"/>
|
android:id="@+id/add_btn"/>
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="center_vertical">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Latitude:"/>
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:ems="10"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1.0"
|
|
||||||
android:id="@+id/locklatitude_et"
|
|
||||||
android:singleLine="true"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="center_vertical">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Longitude:"/>
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:ems="10"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1.0"
|
|
||||||
android:id="@+id/locklongitude_et"
|
|
||||||
android:singleLine="true"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<Switch
|
<Switch
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="启用提醒服务"
|
android:text="提醒服务总开关"
|
||||||
android:id="@+id/taskservice_sw"/>
|
android:id="@+id/taskservice_sw"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/recycler_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:background="@drawable/recycler_view_border"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
android:layout_weight="1.0"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
57
positions/src/main/res/layout/view_left_scroll.xml
Normal file
57
positions/src/main/res/layout/view_left_scroll.xml
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
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="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:background="@drawable/recycler_view_border">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/content_layout"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:background="@color/white">
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/action_layout"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:background="@color/lightgray">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/edit_btn"
|
||||||
|
android:layout_width="80dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="编辑"
|
||||||
|
android:background="@color/blue"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/up_btn"
|
||||||
|
android:layout_width="40dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="△"
|
||||||
|
android:background="@color/green"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/down_btn"
|
||||||
|
android:layout_width="40dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="▽"
|
||||||
|
android:background="@color/green"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/delete_btn"
|
||||||
|
android:layout_width="80dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="删除"
|
||||||
|
android:background="@color/red"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
68
positions/src/main/res/layout/view_position.xml
Normal file
68
positions/src/main/res/layout/view_position.xml
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="备注:"
|
||||||
|
android:id="@+id/comments_tv"/>
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:ems="10"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1.0"
|
||||||
|
android:id="@+id/comments_et"/>
|
||||||
|
|
||||||
|
<Switch
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/enable_sw"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="UUID :"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Text"
|
||||||
|
android:id="@+id/uuid_tv"
|
||||||
|
android:layout_weight="1.0"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="۞"
|
||||||
|
android:id="@+id/movecarema_btn"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="√"
|
||||||
|
android:id="@+id/confirm_btn"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
15
positions/src/main/res/layout/view_position_simple.xml
Normal file
15
positions/src/main/res/layout/view_position_simple.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
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="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="2dp">
|
||||||
|
|
||||||
|
<cc.winboll.studio.positions.views.LeftScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/scrollView"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
@ -5,4 +5,10 @@
|
|||||||
<color name="colorAccent">#FF4081</color>
|
<color name="colorAccent">#FF4081</color>
|
||||||
<color name="style">#4ddad589</color>
|
<color name="style">#4ddad589</color>
|
||||||
<color name="color_C71585">#C71585</color>
|
<color name="color_C71585">#C71585</color>
|
||||||
|
<color name="blue">#FF379AFF</color>
|
||||||
|
<color name="green">#FF69E551</color>
|
||||||
|
<color name="red">#FFE55151</color>
|
||||||
|
<color name="white">#FFFFFFFF</color>
|
||||||
|
<color name="lightgray">#FFE0E0E0</color>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user