如何将浮动操作按钮用作正方形?
How do I use a floating action button as a square?
-
android
-
floating-action-button
-
android-shapedrawable
-
material-components
-
material-components-android
有大量 SO 讨论帖说他们的按钮显示为正方形,这是为了解决错误
但是我的目标是使用方形按钮。我如何将 circle floating action button
变成正方形?
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/standardBlue"
app:srcCompat="@drawable/ic_3d_model"/>
你最好使用 Robertlevonyan 的 customFloatingActionButton 这个库。
<com.robertlevonyan.examples.customfloatingactionbutton.view.FloatingLayout
android:id="@+id/floating_layout"
app:fabType="square"
android:layout_width="match_parent"
android:layout_height="match_parent">
FloatingActionButton 不提供 shapes
除了 rounded
看这个 Request: allow to set the shape of FAB
但除此之外还有很多方法,但我个人推荐的一种方法是使用 robertlevonyan
的 customFloatingActionButton 库,它易于使用且可自定义。
正方形
将以下代码行添加到您的模块(应用程序)级别 Gradle 文件
implementation 'com.robertlevonyan.view:CustomFloatingActionButton:3.0.1'
现在将以下代码添加到activity_main.xml
<com.robertlevonyan.views.customfloatingactionbutton.FloatingActionButton
android:id="@+id/custom_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end" />
You can customize it in XML too by adding app:fabType="square"
but I
prefer MainActivity.java
然后在MainActivity.java
中自定义floatingactionbutton
public class MainActivity extends AppCompatActivity {
private FloatingActionButton floatingActionButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
floatingActionButton = findViewById(R.id.custom_fab);
floatingActionButton.setFabType(FabType.FAB_TYPE_SQUARE); //set button type to square
floatingActionButton.setFabIcon(getResources().getDrawable(R.drawable.ic_baseline_add_btn_24, null));
}
}
输出
您可以使用 Material 组件库中的官方 FloatingActionButton
使用 shapeAppearanceOverlay
属性来实现。
只需使用:
<com.google.android.material.floatingactionbutton.FloatingActionButton
app:shapeAppearanceOverlay="@style/fab_square"
和
<style name="fab_square" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">0dp</item>
</style>
android
floating-action-button
android-shapedrawable
material-components
material-components-android
有大量 SO 讨论帖说他们的按钮显示为正方形,这是为了解决错误
但是我的目标是使用方形按钮。我如何将 circle floating action button
变成正方形?
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/standardBlue"
app:srcCompat="@drawable/ic_3d_model"/>
你最好使用 Robertlevonyan 的 customFloatingActionButton 这个库。
<com.robertlevonyan.examples.customfloatingactionbutton.view.FloatingLayout
android:id="@+id/floating_layout"
app:fabType="square"
android:layout_width="match_parent"
android:layout_height="match_parent">
FloatingActionButton 不提供 shapes
除了 rounded
看这个 Request: allow to set the shape of FAB
但除此之外还有很多方法,但我个人推荐的一种方法是使用 robertlevonyan
的 customFloatingActionButton 库,它易于使用且可自定义。
正方形
将以下代码行添加到您的模块(应用程序)级别 Gradle 文件
implementation 'com.robertlevonyan.view:CustomFloatingActionButton:3.0.1'
现在将以下代码添加到activity_main.xml
<com.robertlevonyan.views.customfloatingactionbutton.FloatingActionButton
android:id="@+id/custom_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end" />
You can customize it in XML too by adding
app:fabType="square"
but I prefer MainActivity.java
然后在MainActivity.java
floatingactionbutton
public class MainActivity extends AppCompatActivity {
private FloatingActionButton floatingActionButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
floatingActionButton = findViewById(R.id.custom_fab);
floatingActionButton.setFabType(FabType.FAB_TYPE_SQUARE); //set button type to square
floatingActionButton.setFabIcon(getResources().getDrawable(R.drawable.ic_baseline_add_btn_24, null));
}
}
输出
您可以使用 Material 组件库中的官方 FloatingActionButton
使用 shapeAppearanceOverlay
属性来实现。
只需使用:
<com.google.android.material.floatingactionbutton.FloatingActionButton
app:shapeAppearanceOverlay="@style/fab_square"
和
<style name="fab_square" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">0dp</item>
</style>