Rx.Widgets alternatives and similar packages
Based on the "Button Widget" category.
Alternatively, view Rx.Widgets alternatives based on common mentions on social networks and blogs.
-
HoldingButton
Button which is visible while user holds it. Main use case is controlling audio recording state (like in Telegram, Viber, VK). -
SubmitDemo
comtomize view submit button which you use for submit operation or download operation and so on. -
hkm-progress-button
Base on android-process-button this is the advanced version of the android-process-button. -
Composable Button Toggle Group
ComposableButtonToggleGroup is the implementation of MaterialButtonToggleGroup for Jetpack Compose -
Hugo Example
DISCONTINUED. Bersikaplah terbuka terhadap setiap peluang secara fotografis. Memotret apa pun yang menarik mata Anda
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Rx.Widgets or a related project?
README
Rx.Widgets
Materially inspired widgets and views.
Use
ExpandableButtonGroup
Add the widget to your view:
<io.andref.rx.widgets.ExpandableButtonGroupLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="16dp"
app:rxw_backgroundTint="@color/colorAccent"
app:rxw_drawableLess="@drawable/ic_expand_less_black_24dp"
app:rxw_drawableMore="@drawable/ic_expand_more_black_24dp"
app:rxw_drawableTint="@android:color/white"
app:rxw_itemsPerRow="4"
app:rxw_lessText="@string/less"
app:rxw_moreText="@string/more"/>
All the available attributes are above and should be self explanatory. Please open an issue if there's one you'd like to see.
Next, give the view some items to display:
List<ExpandableButtonGroup.Item> items = new ArrayList<>();
items.add([...])
final ExpandableButtonGroup expandableButtonGroup = (ExpandableButtonGroup) findViewById(R.id.expandable_button_group);
expandableButtonGroup.setItems(items);
The view won't do anything until you subscribe to the exposed observables:
// Subscribe to "less" button clicks.
expandableButtonGroup.lessItemClicks()
.subscribe(new Action1<Void>()
{
@Override
public void call(Void aVoid)
{
expandableButtonGroup.showLessItems();
}
});
// Subscribe to "more" button clicks.
expandableButtonGroup.moreItemClicks()
.subscribe(new Action1<Void>()
{
@Override
public void call(Void aVoid)
{
expandableButtonGroup.showMoreItems();
}
});
// Subscribe to all the other item clicks.
expandableButtonGroup.itemClicks()
.subscribe(new Action1<ExpandableButtonGroup.Item>()
{
@Override
public void call(ExpandableButtonGroup.Item item)
{
Toast.makeText(getBaseContext(), item.getText(), Toast.LENGTH_SHORT).show();
}
});
ListViewCard
Add the widget to your view:
<io.andref.rx.widgets.ListViewCard
android:id="@+id/list_view_card"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:layout_width="match_parent"
app:rxw_avatarAlpha="1"
app:rxw_avatarTint="@color/colorAccent"
app:rxw_buttonText="@string/button_to_click"
app:rxw_denseLayout="true"
app:rxw_iconAlpha=".27"/>
All the available attributes are above and should be self explanatory. Please open an issue if there's one you'd like to see.
Next, give the view some items to display:
List<ListViewCard.Item> listViewCardItems = new ArrayList<>();
listViewCardItems.add([...]);
mListViewCard = (ListViewCard) findViewById(R.id.list_view_card);
mListViewCard.setItems(listViewCardItems);
To handle the clicks you must subscribe to the exposed observables:
listViewCard.itemClicks()
.subscribe(new Action1<ListViewCard.Item>()
{
@Override
public void call(ListViewCard.Item item)
{
Toast.makeText(getBaseContext(), item.getLine1(), Toast.LENGTH_SHORT).show();
}
});
listViewCard.iconClicks()
.subscribe(new Action1<ListViewCard.Item>()
{
@Override
public void call(ListViewCard.Item item)
{
Toast.makeText(getBaseContext(), "Icon Clicked", Toast.LENGTH_SHORT).show();
}
});
listViewCard.buttonClicks()
.subscribe(new Action1<Void>()
{
@Override
public void call(Void aVoid)
{
Toast.makeText(getBaseContext(), "Button Clicked", Toast.LENGTH_SHORT).show();
}
});
Fun Fact: Even though this widget is called
ListViewCard
it does not contain aListView
. So, why call it that? Because we felt it best conveyed what this widget is supposed to do: Display a list of items inside a card.
Friendly Reminder
Don't forget to unsubscribe when you're done observing!
Note
This library is under active development so expect some breaking changes as we ramp up. We'll note these changes in the release notes.
Binaries
Add the JitPack repository to your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
And then add this library to your project:
dependencies {
compile 'io.andref:Rx.Widgets:1.1.0'
}
Or if you want a specific revision:
dependencies {
compile 'io.andref:Rx.Widgets:5dda428'
}
License
Copyright 2016 Michael De Soto
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
*Note that all licence references and agreements mentioned in the Rx.Widgets README section above
are relevant to that project's source code only.