当发生time
点击时,我需要将RecyclerView
的大小向下移动actionBar
。
我尝试了这段代码
Button
因此,点击 params = (CoordinatorLayout.LayoutParams) myrv.getLayoutParams();
public void changeRecyclerViewPosition() {
params.setMargins(0, android.R.attr.actionBarSize, 0, 0);
myrv.setLayoutParams(params);
}
时RecyclerView
消失。
所以我试图记录Button
的值,它太大了(2130903043)。
我认为结果可能在android.R.attr.actionBarSize
中,需要将其转换为dp。
那么你们能给我解释一下这是怎么回事以及这种行为背后的原因吗?
编辑:
pixels
答案 0 :(得分:1)
您可以通过
获取操作栏高度public void changeRecyclerViewPosition() {
TypedValue tv = new TypedValue();
int actionBarHeight = 0;
if (getActivity().getTheme().resolveAttribute(R.attr.actionBarSize, tv, true))
{
actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
}
params.setMargins(0,actionBarHeight, 0, 0);
myrv.setLayoutParams(params);
}
答案 1 :(得分:0)
使用此xml固定应用栏大小 主线是
**android:minHeight="?attr/actionBarSize"**
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/appBar"
android:minHeight="?attr/actionBarSize"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/toolBar"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>
</com.google.android.material.appbar.AppBarLayout>