gpt4 book ai didi

android - 像文件浏览器一样的选项卡

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:07:59 25 4
gpt4 key购买 nike

我怎样才能像上面这样放置标签..

当我点击上面显示的项目时,我想要这种类型的标签,任何人都可以提供 fragment 或链接..如果可用,请简要说明我该怎么做..如图所示,红色矩形是否有任何适用于该工具或库的 android 工具....或者直接我可以通过代码来做??

提前致谢

矩形描述我想要的东西

爱是形象

enter image description here

..

最佳答案

我为你做了一个简单的项目。你应该让它更漂亮,因为我没有关注那个,只关注代码。

首先将这些值添加到您的 color.xml

<resources>
<color name="buttonGrey">#7A7A7A</color>
<color name="layoutHolderStartColor">#F7F7F7</color>
<color name="layoutHolderEndColor">#E1E1E1</color>
</resources>

接下来为按钮支架创建一些背景并将其命名为gradient_button_holder.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="@color/layoutHolderStartColor"
android:endColor="@color/layoutHolderEndColor"
android:angle="270"
/>
<corners android:radius="3dp" />
</shape>

现在创建activity_main.xml

注意:我用的是一些图片,在最下面下载整个工程,拿出来

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<RelativeLayout
android:id="@+id/pathHolder"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_alignParentTop="true"
android:background="@drawable/gradient_button_holder"
android:gravity="center_vertical">

<Button
android:id="@+id/btnAdd"
android:layout_width="29dp"
android:layout_height="29dp"
android:layout_alignParentRight="true"
android:layout_marginBottom="3dp"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:layout_marginTop="3dp"
android:background="@color/buttonGrey"
android:gravity="center"
android:onClick="onBtnAdd"
android:text="+"
android:textSize="15sp"/>

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/app_name"
android:src="@drawable/seperator"
android:visibility="gone"/>

<HorizontalScrollView
android:id="@+id/btnScrollView"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/btnAdd">

<LinearLayout
android:id="@+id/btnFolderHolder"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:orientation="horizontal">
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
</RelativeLayout>

接下来创建Utils

import android.annotation.SuppressLint;
import android.os.Build;
import android.view.View;

import java.util.concurrent.atomic.AtomicInteger;


public class Utils {

private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1);

/**
* Generate a value suitable for use in setId(int}.
* This value will not collide with ID values generated at build time by aapt for R.id.
*
* @return a generated ID value
*/
private static int generateViewId() {
for (; ; ) {
final int result = sNextGeneratedId.get();
// aapt-generated IDs have the high byte nonzero; clamp to the range under that.
int newValue = result + 1;
if (newValue > 0x00FFFFFF) {
newValue = 1; // Roll over to 1, not 0.
}
if (sNextGeneratedId.compareAndSet(result, newValue)) {
return result;
}
}
}

@SuppressLint("NewApi")
public static int generateId() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {

return generateViewId();
}
else {

return View.generateViewId();
}
}

}

最后是 MainActivity

import android.graphics.Color;
import android.os.Environment;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.Button;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

import java.io.File;


public class MainActivity extends ActionBarActivity {

private LinearLayout btnHolder;
private HorizontalScrollView scroller; //parent folders
private ViewTreeObserver observer; //needed for the scroll to the end
private Toast toast;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
makeButtons(Environment.getExternalStorageDirectory().getPath(), "Folder1", "Folder2", "Folder3");
}


private void makeButtons(String... values) {
StringBuilder sb = new StringBuilder(values.length * 2);
for (int i = 0; i < values.length - 1; ++i) {
sb.append(values[i]);
sb.append(File.separator);
addButton(values[i], sb.toString(), true);
}
sb.append(values[values.length - 1]);
addButton(values[values.length - 1], sb.toString(), false);
}


private void init() {
setWidgetConnections();
observer = scroller.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

public void onGlobalLayout() {
// this will always scroll to the last folder (displayed on the
// right)
scroller.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
}
});
}

private void setWidgetConnections() {
btnHolder = (LinearLayout) findViewById(R.id.btnFolderHolder);
scroller = (HorizontalScrollView) findViewById(R.id.btnScrollView);
}

public void onBtnAdd(View v) {

}

private void addButton(final String text, final String path, boolean withImage) {
// Dynamic call to add buttons
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
Button btn = new Button(this);
btn.setId(Utils.generateId());
btn.setText(text);
btn.setTextColor(Color.BLACK);
btn.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12);
btn.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
goToPath(path);
}
});

//btn.setBackgroundResource(R.drawable.gradient_button_holder);
btnHolder.addView(btn, params);
if (withImage) {
ImageView view = new ImageView(this);
view.setBackgroundResource(R.drawable.seperator2);
btnHolder.addView(view, params);
}



}

private void goToPath(String path) {
showToast(path);
}

private void showToast(String text) {
if (toast != null) {
toast.cancel();
}

toast = Toast.makeText(this, text, Toast.LENGTH_SHORT);
toast.show();
}


}

这是最终结果,还要注意它是水平滚动的

enter image description here

您可以下载整个项目here

关于android - 像文件浏览器一样的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27499125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com