Skip to content

Instantly share code, notes, and snippets.

@messenger63
messenger63 / gist:d3033fbbeea23ad50b71
Created December 3, 2014 09:47
Force show 3 dot overflow menu item on ActionBar
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if(menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
@messenger63
messenger63 / gist:3528d2d7bba7be9ea311
Created December 3, 2014 09:49
Force show 3 dot overflow menu item on ActionBar via menu.xml
<item
android:id="@+id/menu_overflow"
android:title="Overflow"
android:icon="@android:drawable/ic_menu_more"
android:orderInCategory="1"
app:showAsAction="always">
<menu>
<item android:id="@+id/item1"
android:icon="@drawable/icon1"
android:title="title1"
@messenger63
messenger63 / gist:e3f838bc100b5790ef48
Created December 18, 2014 10:29
Customize (hide) arrow from dropdown list in ActionBar
AndroidManifest.xml:
android:theme="@style/MyAppTheme"
Styles.xml:
<style name="MyAppTheme" parent="@style/Theme.AppCompat.Light">
<item name="actionDropDownStyle">@style/DropDownNav.Example</item>
</style>
<style name="DropDownNav.Example" parent="@style/Widget.AppCompat.Light.Spinner.DropDown.ActionBar">
<item name="android:background">@android:color/transparent</item>
@messenger63
messenger63 / gist:c5b59f1d2340fdfe3d01
Created December 18, 2014 10:32
Move drawer to top (above ActionBar).
//call in onCreate()
private void moveDrawerToTop() {
DrawerLayout drawer = (DrawerLayout) layoutInflater.inflate(R.layout.left_drawer, null); // "null" is important.
// HACK: "steal" the first child of left_drawer view
ViewGroup decor = (ViewGroup) getWindow().getDecorView();
View child = decor.getChildAt(0);
decor.removeView(child);
LinearLayout container = (LinearLayout) drawer.findViewById(R.id.drawer_content); // This is the container we defined just now.
container.addView(child, 0);
@messenger63
messenger63 / gist:b30c40b1bbf43bb66eee
Created February 12, 2015 15:00
Tile view with same size views
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@android:color/transparent"
android:padding="5dp"
android:id="@+id/status"
android:orientation="horizontal"
android:visibility="visible"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableRow
@messenger63
messenger63 / vertical view pager
Created March 25, 2015 12:41
vertical view pager
package com.nix.betavest.activities;
/**
* Created by vlevytskyy on 18.03.2015.
*/
import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
@messenger63
messenger63 / gist:10d8021af3a2208bb90e
Created September 21, 2015 15:03
Show decimal only for appropriate numbers (1.23 or 2)
double d1 = 1.234567;
double d2 = 2;
NumberFormat nf = new DecimalFormat("##.###");
System.out.println(nf.format(d1));
System.out.println(nf.format(d2));
@messenger63
messenger63 / gist:c8c10f596ffae5f3aa5d
Created September 25, 2015 09:55
Spinner with "select one" as default
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
if (position == getCount()) {
((TextView)v.findViewById(android.R.id.text1)).setText("");
((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed"
}
@messenger63
messenger63 / gist:73d3f9842b162256457f
Created October 21, 2015 10:34
Autoscale text for textview
import android.content.Context;
import android.text.Layout.Alignment;
import android.text.StaticLayout;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.widget.TextView;
/**
* Text view that auto adjusts text size to fit within the view.