我正在构建一个具有2个片段容器并具有屏幕截图功能的应用程序。 问题是每当2个片段容器之一更新为另一个片段(已替换),而我正在截屏时显示的是以前的片段而不是更新的片段。
我在活动的另一个片段中使用getView().getRootView()
来截取屏幕截图。
为什么会发生任何建议?
答案 0 :(得分:0)
请对该问题进行详细说明或尝试添加代码。
如果您不使用FrameLayout,请使用它。
添加FrameLayout的代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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="match_parent"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/your_placeholder"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"></FrameLayout>
</android.support.constraint.ConstraintLayout>
要添加或替换新的Fragment,请使用FragmentTransaction。
// Code inside the onCreate method
getSupportFragmentManager().beginTransaction()
.replace(R.id.your_placeholder, new TheOtherFragment())
.commit();
要进行屏幕截图:
View view = findViewById(R.id.your_placeholder);
view.setDrawingCacheEnabled(true);
view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
Bitmap screenshot = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
答案 1 :(得分:0)
要进行屏幕截图:
SELECT DISTINCT ON (a.user_id)
a.*
FROM
(
SELECT user_id
, count(*) OVER(PARTITION BY user_id)
FROM some_table
) a