1、navigation导航
android:id="@+id/mine_user_info"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:fitsSystemWindows="true"
app:defaultNavHost="true"
app:navGraph="@navigation/mine_user_info"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
2、databinding 转义字符
空格
< 小于号 < <
> 大于号 > >
& 与号 & &
" 引号 " "
‘ 撇号 ' '
× 乘号 × ×
÷ 除号 ÷ ÷
3、Textview 省略号
android:maxEms="6"
android:maxLines="1"
android:ellipsize="end"
4、EditText 键盘隐藏显示(暂时)
private void showSoftInput() {
TUIKitLog.v(TAG, "showSoftInput");
hideInputMoreLayout();
mAudioInputSwitchButton.setImageResource(R.drawable.action_audio_selector);
mEmojiInputButton.setImageResource(R.drawable.ic_input_face_normal);
mTextInput.requestFocus();
InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mTextInput, 0);
if (mChatInputHandler != null) {
postDelayed(new Runnable() {
@Override
public void run() {
mChatInputHandler.onInputAreaClick();
}
}, 200);
}
}
public void hideSoftInput() {
TUIKitLog.i(TAG, "hideSoftInput");
InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mTextInput.getWindowToken(), 0);
mTextInput.clearFocus();
mInputMoreView.setVisibility(View.GONE);
}
5、databinding 加载单布局
//LayoutInflater.from(this.mContext), R.layout.home_item_map, , false
HomeItemMapBinding binding = HomeItemMapBinding.inflate(getLayoutInflater());
android:id="@+id/flow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFC107"
android:padding="20dp"
app:constraint_referenced_ids="tv_num_7,tv_num_8,tv_num_9"
app:flow_horizontalGap="10dp"
app:flow_maxElementsWrap="3" //行数
app:flow_verticalGap="10dp"
app:flow_wrapMode="aligned"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
7、减少99%的drawable.xml文件的库
https://www.wanandroid.com/blog/show/2335
8、Android studio 4.0.0 Build窗口显示乱码
https://blog.csdn.net/qq_41811438/article/details/107247846?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
9、databinding ()->click
android:id="@+id/tv_fgpwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/checkbox_sel"
android:gravity="center"
android:onCheckedChanged="@{(checkBox, isChecked) -> click.checkbox(isChecked)}"
android:padding="10dp"
android:layout_marginStart="30dp"
app:layout_constraintStart_toStartOf="@+id/tv_apwd"
app:layout_constraintTop_toBottomOf="@+id/et_apwd" />
10、CoordinatorLayout 位置属性
CoordinatorLayout 提供了两个属性用来设置 FAB 的位置:
layout_anchor:设置 FAB 的锚点,我们熟悉的 PopupWindow 也有类似概念。
layout_anchorGravity:设置相对锚点的位置,如bottom|right表示 FAB 位于锚点的右下角。
11、自动缩小字体的TextView
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="10sp"
app:autoSizeMaxTextSize="14sp"
app:autoSizeStepGranularity="2sp"
/>
app:autoSizeTextType="uniform" 使用自动缩小属性
app:autoSizeMinTextSize="10sp" 字体的最小值
app:autoSizeMaxTextSize="14sp" 字体的最大值
app:autoSizeStepGranularity="2sp" 每次缩小的大小
注:在Android 8.0以上版本使用