[英]Why does not appear FloatingActionButton?
我將問題改為一個更容易理解的問題。 但是現在還有另一個問題。 為什么沒有出現FloatingActionButton
為什么不出現FloatingActionButton為什么不出現FloatingActionButton
public class Home extends MyAppCompact
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home); //This is problem
}
}
//
public class MyAppCompact extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout.LayoutParams layoutParams=new LinearLayout.
LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
FloatingActionButton floatingActionButton=new FloatingActionButton(this);
layoutParams.gravity= Gravity.BOTTOM|Gravity.RIGHT;
layoutParams.setMargins(16,16,16,16);
floatingActionButton.setLayoutParams(layoutParams);
floatingActionButton.setImageResource(R.drawable.ic_mic_white_24dp);
floatingActionButton.setClickable(true);
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap bitmap=getScreenShot();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();
Intent intent = new Intent(MyAppCompact.this, FeedBack.class);
intent.putExtra("bitmapData", byteArray);
startActivity(intent);
}
});
LinearLayout.LayoutParams layoutParams1=new LinearLayout.
LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
);
addContentView(floatingActionButton,layoutParams1);
//
// <android.support.design.widget.FloatingActionButton
// android:layout_width="wrap_content"
// android:layout_height="wrap_content"
// android:layout_gravity="bottom|right"
// android:layout_margin="16dp"
// android:id="@+id/btnFloating"
// android:clickable="true"
// android:src="@drawable/ic_mic_white_24dp" />
}
public Bitmap getScreenShot() {
View rootView = getWindow().getDecorView().findViewById(android.R.id.content);
View screenView = rootView.getRootView();
screenView.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(screenView.getDrawingCache());
screenView.setDrawingCacheEnabled(false);
return bitmap;
}
}
您的類擴展了MyAppCompat
類。 在其中創建FloatingActionButton
,然后使用addContentView
方法添加FAB。 您的Home類擴展了MyAppCompat
類。 在onCreate
方法上,您首先調用超級方法,該方法將添加FAB。 但是隨后您調用setContentView
並設置一個新的布局,該布局將替換先前添加的FAB。 可能的解決方法是先添加布局,然后再添加FAB。 但是您必須首先從AppCompatActivity調用原始的onCreate。 因此,在MyAppCompat
類中創建一個名為addFAB
的新方法,並將FAB的代碼放在此處。 然后在您的家庭課堂上做類似的事情
public class Home extends MyAppCompact
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
addFAB();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.