【问题标题】:Labels into Floating Button标签到浮动按钮
【发布时间】:2017-01-05 21:42:12
【问题描述】:

我正在尝试在 FAB 的侧面插入标签...
我搜索了一下,找到了使用 LinearLayout 和 TextView 的方法,但我做不到..
直到现在我才写了这个,但它甚至没有显示按钮..

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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"
android:fitsSystemWindows="true"
tools:context="com.example.nigi.myapplication2.MainActivity">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:visibility="invisible">
<TextView
    android:text="TextView"
    android:layout_width="70dp"
    android:layout_height="15dp"
    android:id="@+id/textView3"
    android:layout_weight="1" />
<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="160dp"
    android:layout_gravity="bottom|end"
    android:layout_marginRight="@dimen/fab_margin"
    app:backgroundTint="@color/colorFAB2"
    app:elevation="6dp"
    app:pressedTranslationZ="12dp"
    android:src="@android:drawable/ic_lock_silent_mode" />
</LinearLayout>
<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="90dp"
    android:layout_gravity="bottom|end"
    android:layout_marginRight="@dimen/fab_margin"
    android:visibility="invisible"
    app:elevation="6dp"
    app:backgroundTint="@color/colorFAB1"
    app:pressedTranslationZ="12dp"
    android:src="@android:drawable/ic_menu_save"/>
<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="338dp"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|right"
    app:elevation="6dp"
    app:backgroundTint="@color/colorAccent"
    app:pressedTranslationZ="12dp"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_menu_add"
    app:layout_anchorGravity="top|left" />
</android.support.design.widget.CoordinatorLayout>

你有什么想法,关于什么是错的?谢谢!!

更新

昨天有点累,没看到很多想法..
感谢 cmets!
因此,我重写了 LinearLayout 部分并对 java 文件进行了一些更改,但仍然存在一些问题:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/linear1"

    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:visibility="invisible"

    android:layout_marginBottom="160dp"
    android:layout_gravity="bottom|end"
    android:layout_marginRight="@dimen/fab_margin">

<TextView
    android:text="TextView"
    android:layout_width="70dp"
    android:layout_height="15dp"
    android:id="@+id/textView3"
    android:layout_weight="1" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:backgroundTint="@color/colorFAB2"
    app:elevation="6dp"
    app:pressedTranslationZ="12dp"
    android:src="@android:drawable/ic_lock_silent_mode" />

</LinearLayout>

在java文件中:

public class MainActivity extends AppCompatActivity implement View.OnClickListener{
private Boolean isFabOpen = false;
private FloatingActionButton fab,fab1,fab2;
private Animation fab_open,fab_close,rotate_forward,rotate_backward;
LinearLayout linear1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    fab = (FloatingActionButton)findViewById(R.id.fab);
    fab1 = (FloatingActionButton)findViewById(R.id.fab1);
    fab2 = (FloatingActionButton)findViewById(R.id.fab2);

    linear1 = (LinearLayout)findViewById(R.id.linear1);

    fab_open = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fab_open);
    fab_close = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fab_close);
    rotate_forward = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.rotate_forward);
    rotate_backward = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.rotate_backward);
    fab.setOnClickListener(this);
    fab1.setOnClickListener(this);
    fab2.setOnClickListener(this);
    linear1.setOnClickListener(this);
}

public void onClick(View v) {
    int id = v.getId();
    switch (id){
        case R.id.fab:

            animateFAB();
            break;
        case R.id.fab1:

            Log.d("Raj", "Fab 1");
            break;
        case R.id.fab2:

            Log.d("Raj", "Fab 2");
            break;
    }
}

public void animateFAB(){

    if(isFabOpen){

        fab.startAnimation(rotate_backward);
        fab1.startAnimation(fab_close);
        linear1.startAnimation(fab_close);
        fab1.setClickable(false);
        fab2.setClickable(false);
        isFabOpen = false;
        Log.d("Raj", "close");

    } else {

        fab.startAnimation(rotate_forward);
        fab1.startAnimation(fab_open);
        linear1.startAnimation(fab_open);
        fab1.setClickable(true);
        fab2.setClickable(true);
        isFabOpen = true;
        Log.d("Raj","open");

    }
}
}


and the screenshot after the changes is:

任何想法有什么问题吗?谢谢!!

【问题讨论】:

  • 你有截图吗?
  • 谁能帮忙???
  • 你能删除旧代码并只显示当前代码吗?另外,您能否提供预期的行为(“但我仍然有一些问题”不是很具有描述性......)。
  • 你可以看到我上传的图片,你会看到按钮出现在不同的地方......在原始xml上,没有LinearLayout和TextView,在java文件上没有LinearLayout 和我写linear1的地方,原来是fab2....
  • 你给了一个按钮的宽度,而另一个你没有。另一件事是其中一个有 layout_marginBottom="90dp" 而另一个没有。如果您希望它们位于同一个位置,我建议您确保它们具有相同的定义。

标签: android floating-action-button


【解决方案1】:

也许是无关的,但这个LinearLayout 似乎是错误的:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:visibility="invisible">

你有一个不可见的视图,它占据了整个屏幕并且没有 id,所以我猜你不会晚点把它变成可见的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多