我已经使用this库创建了一个可扩展的FAB按钮。看到上面链接中的图像Fab Label布局与标题文本不匹配。
<com.getbase.floatingactionbutton.FloatingActionsMenu
android:id="@+id/mainFab"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_margin="16dp"
app:fab_addButtonColorNormal="@color/colorAccent"
app:fab_addButtonPlusIconColor="#000"
app:fab_labelStyle="@style/custom_fab">
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/picNote"
android:layout_width="65dp"
android:layout_height="65dp"
app:fab_icon="@drawable/text_reader"
app:fab_size="mini"
app:fab_title=" Picture note" />
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/ocrNote"
android:layout_width="65dp"
android:layout_height="65dp"
app:fab_icon="@drawable/ic_text"
app:fab_size="mini"
app:fab_title="Scan Text" />
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/textNote"
android:layout_width="65dp"
android:layout_height="65dp"
app:fab_icon="@drawable/ic_camera"
app:fab_size="mini"
app:fab_title="Text note" />
</com.getbase.floatingactionbutton.FloatingActionsMenu>
答案 0 :(得分:0)
在com.getbase.floatingactionbutton.FloatingActionButton
中使用
android:layout_width="wrap_content"
代替
android:layout_width="65dp"
答案 1 :(得分:0)
由于您使用的是第三方库,因此我建议您使用本机代码,该代码非常简单,您可以根据需要进行控制
这是
test.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginRight="50dp"
app:srcCompat="@android:drawable/ic_dialog_email"/>
<TextView
android:visibility="visible"
android:id="@+id/text"
android:layout_toLeftOf="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Menu"
android:layout_marginBottom="22dp"
android:layout_marginRight="16dp"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginRight="50dp"
app:srcCompat="@android:drawable/ic_dialog_email"/>
<TextView
android:visibility="gone"
android:id="@+id/text1"
android:layout_toLeftOf="@+id/fab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Item1"
android:layout_marginBottom="22dp"
android:layout_marginRight="16dp"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginRight="50dp"
app:srcCompat="@android:drawable/ic_dialog_email"/>
<TextView
android:visibility="gone"
android:id="@+id/text2"
android:layout_toLeftOf="@+id/fab2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Item2"
android:layout_marginBottom="22dp"
android:layout_marginRight="16dp"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginRight="50dp"
app:srcCompat="@android:drawable/ic_dialog_email"/>
<TextView
android:visibility="gone"
android:layout_toLeftOf="@+id/fab3"
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Item3"
android:layout_marginBottom="22dp"
android:layout_marginRight="16dp"/>
</RelativeLayout>
这是您可以控制fab和文字动画的地方
test.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
public class test extends AppCompatActivity {
FloatingActionButton fab1 ;
FloatingActionButton fab2 ;
FloatingActionButton fab3 ;
TextView text1 ;
TextView text2 ;
TextView text3 ;
boolean isFABOpen = false ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab1 = (FloatingActionButton) findViewById(R.id.fab1);
fab2 = (FloatingActionButton) findViewById(R.id.fab2);
fab3 = (FloatingActionButton) findViewById(R.id.fab3);
text1 = (TextView) findViewById(R.id.text1);
text2 = (TextView) findViewById(R.id.text2);
text3 = (TextView) findViewById(R.id.text3);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(!isFABOpen){
showFABMenu();
}else{
closeFABMenu();
}
}
});
}
private void showFABMenu(){
isFABOpen=true;
fab1.animate().translationY(-150);
text1.animate().translationY(-150);
text1.setVisibility(View.VISIBLE);
fab2.animate().translationY(-300);
text2.animate().translationY(-300);
text2.setVisibility(View.VISIBLE);
fab3.animate().translationY(-450);
text3.animate().translationY(-450);
text3.setVisibility(View.VISIBLE);
}
private void closeFABMenu(){
isFABOpen=false;
fab1.animate().translationY(0);
text1.animate().translationY(0);
text1.setVisibility(View.GONE);
fab2.animate().translationY(0);
text2.animate().translationY(0);
text2.setVisibility(View.GONE);
fab3.animate().translationY(0);
text3.animate().translationY(0);
text3.setVisibility(View.GONE);
}
}