Android按钮始终位于待机状态的所有活动之上

时间:2017-08-11 14:09:34

标签: android android-layout

我正在尝试制作一个按钮,它会像浮动动作按钮一样处于待机状态,尽管它可能存在于任何上下文中,但是我应该支持我的所有活动,我怎样才能实现这一点请给我一个链接或给我一个想法

2 个答案:

答案 0 :(得分:2)

class ActivityOne extends BaseActivity{
  @Override 
  protected View childView(){
      return getLayoutInflator().inflate(R.layout.activity_one, null);
   }
}

class ActivityTwo extends BaseActivity{
   @Override
   protected View childView(){
      return getLayoutInflator().inflate(R.layout.activity_two, null);
   }
}

public abstract class BaseActivity extends Activity{

   protected abstract View childView();

   @Override
   protected void onCreate(SavedInstanceState savedInstanceState){
    super.onCreate(savedInstanceState);
    RelativeLayout baseLayout;
    ViewStub stub;
    baseLayout = (RelativeLayout)
    this.getLayoutInflater().inflate(R.layout.layout_base, null);
    stub = (ViewStub) baseLayout.findViewById(R.id.base_content_stub);

    // Replace viewstub with content.
    baseLayout.removeView(stub);
    baseLayout.addView(childView(), stub.getLayoutParams());

    super.setContentView(baseLayout);
   }
}

<强> layout_base.xml

<RelativeLayout 
 ....
>
 <ViewStub 
  android:layout_width = "match_parent"
  android:layout_height = "match_parent"
  android:id="@+id/base_content_stub"/>

 <Button 
 .... // <---- common to all activities
 />
</RelativeLayout>

答案 1 :(得分:0)

每次活动都不可能使用相同的按钮。您可以使用相同的布局,但每次创建新活动时都必须重新创建按钮。你可能可以避免这种情况,如果你用动作栏做了一些花哨的东西,坦率地说不值得。我建议你看看使用片段而不是活动,在这种情况下你可以让你的活动布局文件看起来像这样:

<LinearLayout android:id="@+id/fragment_container"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="coop.nisc.intern2016.ui.MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/button_text" />

    <RelativeLayout
        android:id="fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

然后,您可以使用FragmentManager将片段放入fragment_container。代码看起来像这样:

private void showCustomFragment() {
    FragmentManager fragmentManager = getSupportFragmentManager();
    customFragment = new customFragment();
    fragmentManager.beginTransaction()
            .replace(R.id.fragment_container, customFragment, customFragment.TAG)
            .commit();
}