Ich versuche, ein Raster von Schaltflächen zu erstellen. Um die Teiler einer GridLayout
zu zeigen, habe ich den Hintergrund meiner GridLayout
mit Farbe schwarz gesetzt & Ich habe dann versucht, meine Taste zu platzieren. Ich bin der Teiler im Raster, aber aus irgendeinem Grund kann ich ihre Dicke nicht kontrollieren.GridView Padding, VerticalSpacing & HorizontalSpacing wird nur nicht abnehmen
Ich habe versucht, die verticalSpacing
und horizontalSpacing
so niedrig wie 0,1, aber immer noch keine Verwendung. Es wird einfach nicht abnehmen und ich am Ende die folgende bekommen
Es folgt mein content_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="accordiontry.juspay.accordiontry.MainActivity"
tools:showIn="@layout/activity_main"
android:orientation="vertical">
<GridView
android:id="@+id/gridView"
android:padding="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:stretchMode="columnWidth"
android:gravity="fill_horizontal"
android:numColumns="2"
android:verticalSpacing=".05dp"
android:horizontalSpacing="0.1dp">
</GridView>
</LinearLayout>
Es folgt das Layout für die Schaltfläche, cell_layout.xml
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/button"
xmlns:android="http://schemas.android.com/apk/res/android" />
Folgendes ist die benutzerdefinierte Grid Ada pitel, GridAdapter.java
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
/**
* Created by stpl on 27/7/16.
*/
public class GridAdapter extends BaseAdapter {
private Context context;
private String[] names;
public GridAdapter(Context context, String[] names)
{
this.context = context;
this.names = names;
}
@Override
public int getCount() {
return names.length;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup)
{
View cell;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
cell = inflater.inflate(R.layout.cell_layout,null);
Button btn = (Button) cell.findViewById(R.id.button);
btn.setText("BUTTON "+ names[i]);
return cell;
}
}
Und schließlich finden Sie meine MainActivity.java
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.webkit.WebView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private GridView gridView;
private final int NumOfCol = 2;
private final int NumOfRows = 2;
private String[] names = {"BUTTON1", "BUTTON2", "BUTTON3", "BUTTON4"};
private GridAdapter gridAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
init();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void init()
{
gridView = (GridView) findViewById(R.id.gridView);
gridAdapter = new GridAdapter(this, names);
gridView.setAdapter(gridAdapter);
}
}
Ich weiß nicht, wo ich falsch gehe. Bitte helfen Sie.
Vielen Dank für Ihre Zeit!